Лежит ли точка 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')
Объяснение:
Вас заинтересует
3 месяца назад
3 месяца назад
3 месяца назад
1 год назад
1 год назад
7 лет назад