lilikykytik21
19.09.2020 23:23

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Ivankozyr69gmail
28.09.2020 11:47
В основу решения возьму тот факт, что точка лежит внутри треугольника только в том случае, если сумма площадей трех образованных этой точкой и вершинами треугольников треугольников равна площади самого треугольника. Для нахождения площади треугольников использую формулу векторного произведения, деленного пополам.

#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;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота