Напишите алгоритм решения задачи на языке С ++ Принадлежит ли заданая точка внутренней области треугольника . Входные данные x1 y1 x2 y2 x3 y3 - координаты вершин треугольника x0 y0 - координаты данной точки Исходные данные Отв...

Напишите алгоритм решения задачи на языке С ++ Принадлежит ли заданая точка внутренней области треугольника . Входные данные x1 y1 x2 y2 x3 y3 - координаты вершин треугольника x0 y0 - координаты данной точки Исходные данные Ответ " YES " или "NO " .
Гость
Ответ(ы) на вопрос:
Гость
В основу решения возьму тот факт, что точка лежит внутри треугольника только в том случае, если сумма площадей трех образованных этой точкой и вершинами треугольников треугольников равна площади самого треугольника. Для нахождения площади треугольников использую формулу векторного произведения, деленного пополам. #include #include using namespace std; int main() {   int x1, y1, x2, y2, x3, y3, x0, y0;   scanf("%d%d%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &x3, &y3, &x0, &y0);   if (abs((x1 - x0) * (y2 - y0) - (x2 - x0) * (y1 - y0)) +       abs((x1 - x3) * (y0 - y3) - (x0 - x3) * (y1 - y3)) +       abs((x0 - x3) * (y2 - y3) - (x2 - x3) * (y0 - y3)) ==       abs((x1 - x3) * (y2 - y3) - (x2 - x3) * (y1 - y3)))   {     printf("YES");   } else {     printf("NO");   }   return 0; }
Не нашли ответ?
Ответить на вопрос
Похожие вопросы