Форум сайта python.su
0
Помогите, пожалуйста!
Условие: “Заданы координаты вершин треугольника (int) на плоскости. 1)Вычислить длины сторон треугольника и 2)длину медианы, проведённую из наименьшего угла. 3)Ввести координату одной точки и определить, находится ли она внутри треугольника. Если находится, то определить расстояние от точки до ближайшей стороны.”
Сделал первый пункт про координаты, в принципе знаю, как сделать медиану, но не могу к ней приступить, не зная углов. Может кто подсказать, пожалуйста, как задать углы в Python? Мне нужно задать команду на проверку наименьшего угла этого треугольника, а от него уже проводить медиану. Понятия не имею, как это сделать без углов. <<… и длину медианы, проведённую из наименьшего угла…>>. Что из себя вообще представляет “угол” на Python - коде? Как, например, узнать “угол” между 2 сторонами, - допустим, a и b - длины которых я смог найти из первого пункта задания? Буду очень благодарен спасителю! Требуется просто пояснения, как узнать “угол”.
Офлайн
253
edwardnewgateВ питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.
Что из себя вообще представляет “угол” на Python - коде?
Офлайн
253
edwardnewgateВ питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.
Что из себя вообще представляет “угол” на Python - коде?
edwardnewgateПоясните кто вы такой. Школьник, студент, какого курса/класса. От этого сильно ответ зависит. Точнее ответ такой - берете учебник и вбиваете из него формулу… только учебники могут быть сильно разные.
Требуется просто пояснения, как узнать “угол”.
Отредактировано doza_and (Сен. 20, 2015 17:34:18)
Офлайн
0
Студент, 1 курс, только начали Python
Офлайн
253
edwardnewgateТогда надо использовать методы аналитической геометрии
Студент, 1 курс, только начали Python
import numpy as np x=np.array([1.,2,3]) y=np.array([1.,2,3]) np.arccos(np.dot(x,y)/((np.linalg.norm(x)*np.linalg.norm(y))))
Офлайн
857
edwardnewgatehttps://otvet.mail.ru/question/46033420
3)Ввести координату одной точки и определить, находится ли она внутри треугольника.
А я томат Гуру
Если сумма площадей трех треугольников равна площади первого треугольника, то точка лежит либо внутри, либо на сторонах.
Но если площадь хоть одного из этих трех треугольников равна 0 то точка лежит на стороне.
Но можно, вроде, без площадей считать, вы ведь площади по герону считаете?
Можно получить, где лежит точка относительно каждго из векторов, образующих стороны (слева или справа) .
Т. е. если точка лежит справа от AB, справа от BC и справа от CA то она внутри. Или также, если слева от всех (если вершины ABC идут против часовой стрелки)
тогда составляем 3 выражения типа:
(x - xa)*(ya-yb) - (y-ya)*(ya-yb) // для AB
и сравниваем знаки всех трех.
Если знаки (меньше нуля или больше) одинаковы, то точка внутри лежит. Если хоть один нуль, то на стороне.
edwardnewgatehttp://ru.onlinemschool.com/math/library/analytic_geometry/p_line1/
Если находится, то определить расстояние от точки до ближайшей стороны.
d = |A * Mx + B * My + C| / sqrt(A * A + B * B)
edwardnewgateНаходишь наименьший угол, находишь сторону напротив него, там берёшь середину и ищешь расстояние от неё до точки угла.
2)длину медианы, проведённую из наименьшего угла.
Отредактировано py.user.next (Сен. 21, 2015 02:31:48)
Офлайн