• Предмет: Информатика
  • Автор: veradrozdova315
  • Вопрос задан 4 месяца назад

Лежит ли точка M(xm,ym) внутри треугольника, заданного координатами своих вершин A(xa,ya), B(xb,yb), C(xc,yc) на плоскости

Если точка принадлежит области (область включает границы), выведите слово YES, иначе выведите слово NO. Решение должно содержать функцию IsPointInTriangle(x1, y1, x2, y2, x3, y3), возвращающую True, если точка принадлежит области и False, если не принадлежит. Основная программа должна считать координаты вершин треугольника, вызвать функцию IsPointInTriangle и в зависимости от возвращенного значения вывести на экран необходимое сообщение.

Формат ввода

Вводится шесть действительных чисел x1, y1, x2, y2, x3, y3 - координаты вершин треугольника.

Затем вводится два числа x1, y1 - координаты точки.

Формат вывода

Выведите ответ на задачу.

Примеры

Тест 1

Входные данные:

-1

0

1

0

0

1

0

0

Вывод программы:

YES



Тест 2

Входные данные:

-1

0

1

0

0

1

0

1




Вывод программы:

YES







Тест 3

Входные данные:

-1

0

1

0

0

1

0

2

Вывод программы:

NO


veradrozdova315: Нужно написать код на Python

Ответы

Ответ дал: Аноним
0

Ответ:

def IsPointInTriangle(x1, y1, x2, y2, x3, y3, xm, ym):

   a = (x1 - xm) * (y2 - y1) - (x2 - x1) * (y1 - ym)

   b = (x2 - xm) * (y3 - y2) - (x3 - x2) * (y2 - ym)

   c = (x3 - xm) * (y1 - y3) - (x1 - x3) * (y3 - ym)

   return (a >= 0 and b >= 0 and c >= 0) or (a <= 0 and b <= 0 and c <= 0)

xa, ya, xb, yb, xc, yc = map(float, input().split())

xm, ym = map(float, input().split())

if IsPointInTriangle(xa, ya, xb, yb, xc, yc, xm, ym):

   print('YES')

else:

   print('NO')

Объяснение:

Вас заинтересует