Register

OR

Do you already have an account? Login

Login

OR

Don't you have an account yet? Register

Newsletter

Submit to our newsletter to receive exclusive stories delivered to you inbox!

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

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

более месяца назад
Просмотров : 31    Ответов : 1   

Лучший ответ:

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

#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;
}

более месяца назад
Ваш ответ:
Комментарий должен быть минимум 20 символов
Чтобы получить баллы за ответ войди на сайт





Вы можете из нескольких рисунков создать анимацию (или целый мультфильм!). Для этого нарисуйте несколько последовательных кадров и нажмите кнопку Просмотр анимации.


Другие вопросы: