Найти - Пользователи
Полная версия: Python (углы треугольника, на помощь!)
Начало » Python для новичков » Python (углы треугольника, на помощь!)
1
edwardnewgate
Помогите, пожалуйста!
Условие: “Заданы координаты вершин треугольника (int) на плоскости. 1)Вычислить длины сторон треугольника и 2)длину медианы, проведённую из наименьшего угла. 3)Ввести координату одной точки и определить, находится ли она внутри треугольника. Если находится, то определить расстояние от точки до ближайшей стороны.”
Сделал первый пункт про координаты, в принципе знаю, как сделать медиану, но не могу к ней приступить, не зная углов. Может кто подсказать, пожалуйста, как задать углы в Python? Мне нужно задать команду на проверку наименьшего угла этого треугольника, а от него уже проводить медиану. Понятия не имею, как это сделать без углов. <<… и длину медианы, проведённую из наименьшего угла…>>. Что из себя вообще представляет “угол” на Python - коде? Как, например, узнать “угол” между 2 сторонами, - допустим, a и b - длины которых я смог найти из первого пункта задания? Буду очень благодарен спасителю! Требуется просто пояснения, как узнать “угол”.
doza_and
edwardnewgate
Что из себя вообще представляет “угол” на Python - коде?
В питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.
doza_and
edwardnewgate
Что из себя вообще представляет “угол” на Python - коде?
В питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.

edwardnewgate
Требуется просто пояснения, как узнать “угол”.
Поясните кто вы такой. Школьник, студент, какого курса/класса. От этого сильно ответ зависит. Точнее ответ такой - берете учебник и вбиваете из него формулу… только учебники могут быть сильно разные.
edwardnewgate
Студент, 1 курс, только начали Python
doza_and
edwardnewgate
Студент, 1 курс, только начали Python
Тогда надо использовать методы аналитической геометрии
Угол между двумя направлениями задаваемыми векторами x,y arccos((x,y)/sqrt((x,x))sqrt((y,y))) (x,y) - скалярное произведение векторов x,y Такие штуки легко считать если поставить numpy
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))))

У вас может получился рассинхрон в том что вам прочитали. Т.е. Препод по питону требует то что по аналитической геометрии вам еще не рассказали.

Пишите в личку какой ВУЗ может я ошибаюсь в гипотезе.
py.user.next
edwardnewgate
3)Ввести координату одной точки и определить, находится ли она внутри треугольника.
https://otvet.mail.ru/question/46033420
А я томат Гуру
Если сумма площадей трех треугольников равна площади первого треугольника, то точка лежит либо внутри, либо на сторонах.
Но если площадь хоть одного из этих трех треугольников равна 0 то точка лежит на стороне.

Но можно, вроде, без площадей считать, вы ведь площади по герону считаете?
Можно получить, где лежит точка относительно каждго из векторов, образующих стороны (слева или справа) .
Т. е. если точка лежит справа от AB, справа от BC и справа от CA то она внутри. Или также, если слева от всех (если вершины ABC идут против часовой стрелки)
тогда составляем 3 выражения типа:
(x - xa)*(ya-yb) - (y-ya)*(ya-yb) // для AB
и сравниваем знаки всех трех.
Если знаки (меньше нуля или больше) одинаковы, то точка внутри лежит. Если хоть один нуль, то на стороне.

edwardnewgate
Если находится, то определить расстояние от точки до ближайшей стороны.
http://ru.onlinemschool.com/math/library/analytic_geometry/p_line1/
d = |A * Mx + B * My + C| / sqrt(A * A + B * B)

edwardnewgate
2)длину медианы, проведённую из наименьшего угла.
Находишь наименьший угол, находишь сторону напротив него, там берёшь середину и ищешь расстояние от неё до точки угла.
Два угла могут быть наименьшими в равнобедренном, три угла могут быть наименьшими в равностороннем.

Про угол doza_and уже сказал.
Есть две формулы: скалярное произведение векторов и модуль векторного произведения векторов. (Их надо выучить.)
Они похожи, но различаются, и из них можно выводить угол или длины векторов.
Если, к примеру, известна площадь параллелограмма, то она равна модулю векторного произведения сторон, а модуль векторного произведения использует угол между векторами. Так ты можешь по площади параллелограмма узнавать угол между его сторонами. А треугольник - это половина параллелограмма.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB