Предмет: Информатика,
автор: 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')
Объяснение:
Похожие вопросы
Предмет: Английский язык,
автор: palamarcukviktoria15
Предмет: Биология,
автор: moldira931
Предмет: География,
автор: grezkatya
Предмет: Математика,
автор: Аноним