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

    x0 y0 - координаты данной точки
    Исходные данные
    Ответ " YES " или "NO " .

Ответы 1

  • В основу решения возьму тот факт, что точка лежит внутри треугольника только в том случае, если сумма площадей трех образованных этой точкой и вершинами треугольников треугольников равна площади самого треугольника. Для нахождения площади треугольников использую формулу векторного произведения, деленного пополам.#include <stdio.h>#include <stdlib.h>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;}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years