Заданы координаты вершин треугольника и точки. Определить, лежит ли точка внутри...

0 голосов
51 просмотров

Заданы координаты вершин треугольника и точки. Определить, лежит ли точка внутри треугольника.
Помогите написать программу в c++ или хотя бы математическую формулу, по которой высчитывать это.
Спасибо за внимание


Информатика (24 баллов) | 51 просмотров
Дан 1 ответ
0 голосов
Если точка лежит внутри треугольника, то сумма площадей образованных ей треугольников равна площади данного треугольника.
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";</em>
    } else {
      cout << "Out";</em>
    }
    return 0;
}
(13.3k баллов)