Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2015 17:22:00

edwardnewgate
Зарегистрирован: 2015-09-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

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

Офлайн

#2 Сен. 20, 2015 17:28:33

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

edwardnewgate
Что из себя вообще представляет “угол” на Python - коде?
В питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.



Офлайн

#3 Сен. 20, 2015 17:33:06

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

edwardnewgate
Что из себя вообще представляет “угол” на Python - коде?
В питоне нет углов вообще (как и координат x,y) Есть плавающие числа т.е. float. функции модуля math типа sin принимают плавающие числа и считают что это угол в радианах.

edwardnewgate
Требуется просто пояснения, как узнать “угол”.
Поясните кто вы такой. Школьник, студент, какого курса/класса. От этого сильно ответ зависит. Точнее ответ такой - берете учебник и вбиваете из него формулу… только учебники могут быть сильно разные.



Отредактировано doza_and (Сен. 20, 2015 17:34:18)

Офлайн

#4 Сен. 20, 2015 17:37:32

edwardnewgate
Зарегистрирован: 2015-09-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

Студент, 1 курс, только начали Python

Офлайн

#5 Сен. 20, 2015 20:40:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

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))))

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

Пишите в личку какой ВУЗ может я ошибаюсь в гипотезе.



Офлайн

#6 Сен. 21, 2015 01:54:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Python (углы треугольника, на помощь!)

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 уже сказал.
Есть две формулы: скалярное произведение векторов и модуль векторного произведения векторов. (Их надо выучить.)
Они похожи, но различаются, и из них можно выводить угол или длины векторов.
Если, к примеру, известна площадь параллелограмма, то она равна модулю векторного произведения сторон, а модуль векторного произведения использует угол между векторами. Так ты можешь по площади параллелограмма узнавать угол между его сторонами. А треугольник - это половина параллелограмма.



Отредактировано py.user.next (Сен. 21, 2015 02:31:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version