Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 11, 2019 22:02:18

Bakz
Зарегистрирован: 2019-12-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти размеры многоугольника

Мне нужно посчитать длину и высоту объекта по координатам в двумерном пространстве. Допустим есть фигура случайной формы и есть координаты всех точек этой фигуры. Фигура может быть расположена в пространстве как угодно.
Конечная цель определить на сколько процентов длинна больше ширины.

На данный момент у меня есть:
1. Координаты (x, y) всех точек из которых состоит фигура.
2. Шесть крайних точек и расстояние между ними.
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.

Не могу понять как правильно посчитать высоту. По идее высота это отрезок перпендикулярный длине, но как его определить не понимаю.

Пробовал создать линию перпендикулярную длине объекта и проверить все точки фигуры на принадлежность этой линии но это не гарантирует что высота фигуры конкретно в этом месте будет максимальной или хотя бы средней.

Использую python3.7 и sympy.

Буду очень благодарен за помощь.

Офлайн

#2 Дек. 12, 2019 01:30:45

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

Помогите найти размеры многоугольника

Bakz
1. Координаты (x, y) всех точек из которых состоит фигура.
Что, прямо всё множество точек, которое образует фигуру? Обычно это выражается уравнением ГМТ (геометрическое место точек) и любая точка, удовлетворяющая уравнению ГМТ, принадлежит ему.

Bakz
2. Шесть крайних точек и расстояние между ними.
Они уже принадлежат фигуре, поэтому в них нет необходимости. Длина и высота фигуры определяются через всё множество точек.

Bakz
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Дай определение длины фигуры и высоты фигуры сначала. Если они у тебя необычные, ты должен дать определения, прежде чем искать эти величины.
Длиной фигуры будем называть …
Высотой фигуры будем называть …



Отредактировано py.user.next (Дек. 12, 2019 01:32:40)

Офлайн

#3 Дек. 12, 2019 07:59:18

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Помогите найти размеры многоугольника

по координатам в двумерном пространстве
Т.е. всё-таки на плоскости, чтоб понятнее было.

На данный момент у меня есть:

3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Как вариант, можно построить новую систему координат, в которой осью X будет прямая с этим самым длинным отрезком. Пересчитать координаты всех вершин в эту новую систему, а тогда высотой можно будет считать самую большую разницу среди Y-координат.



Офлайн

#4 Дек. 12, 2019 08:15:29

Striver
От:
Зарегистрирован: 2006-10-26
Сообщения: 247
Репутация: +  22  -
Профиль   Отправить e-mail  

Помогите найти размеры многоугольника

как-то так



Прикреплённый файлы:
attachment поиск высоты.png (85,3 KБ)

Офлайн

#5 Дек. 12, 2019 09:12:16

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

Помогите найти размеры многоугольника

Bakz
На данный момент у меня есть:
1. Координаты (x, y) всех точек из которых состоит фигура.
2. Шесть крайних точек и расстояние между ними.
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Определения длины фигуры и определения высоты фигуры я так и не вижу.

Если у тебя есть отрезок, который равен длине фигуры, то можешь повернуть фигуру и выполнить её параллельный перенос, чтобы этот отрезок получился отложенным от начала координат и принадлежал оси абсцисс. И дальше ты сможешь найти высоту этой фигуры, выполнив её параллельный перенос вдоль положительной оси ординат, чтобы фигура находилась над осью абсцисс. Точка с самой большой абсциссой будет принадлежать отрезку высоты.

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



Отредактировано py.user.next (Дек. 12, 2019 09:12:45)

Офлайн

#6 Дек. 14, 2019 14:01:00

Bakz
Зарегистрирован: 2019-12-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти размеры многоугольника

py.user.next
Длина фигуры это самое большое расстояние между крайними противостоящими точками.
Ширина фигуры максимальное расстояние между противостоящими точками при условии что прямая проведенная через них перпендикулярна длине фигуры.


Офлайн

#7 Дек. 14, 2019 14:03:39

Bakz
Зарегистрирован: 2019-12-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите найти размеры многоугольника

Striver
Мне нравится идея. Вот только я пока не понимаю как это сделать программно. Есть какая-то библиотека для этого? Не хочется писать код если уже есть готовое решение.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version