Заданы координаты вершин треугольника и точки. Определить, лежит ли точка внутри треугольника.
Помогите написать программу в c++ или хотя бы математическую формулу, по которой высчитывать это.
Спасибо за внимание
Если точка лежит внутри треугольника, то сумма площадей образованных ей треугольников равна площади данного треугольника.
x1, y1, x2, y2, x3, y3 - координаты точек треугольника, x, y - координаты точки.
Найдем векторное произведение, которое равно удвоенной площади треугольника.
Исходный код:
#include
using namespace std;
int main() {
int x1, y1, x2, y2, x3, y3, x, y;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x >> y;
if (abs((x1 - x) * (y2 - y) - (x2 - x) * (y1 - y)) +
abs((x1 - x3) * (y - y3) - (x - x3) * (y1 - y3)) +
abs((x - x3) * (y2 - y3) - (x2 - x3) * (y - y3)) ==
abs((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)))
{
cout << "In";
} else {
cout << "Out";
}
return 0;
}
Оцени ответ
