Предмет: Информатика,
автор: veradrozdova315
Лежит ли точка 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')
Объяснение:
Похожие вопросы
Предмет: История,
автор: t275510
Предмет: Математика,
автор: dzzz9832
Предмет: Українська література,
автор: olgapanchenko98
Предмет: Математика,
автор: Аноним