Найти - Пользователи
Полная версия: Помогите найти размеры многоугольника
Начало » Python для новичков » Помогите найти размеры многоугольника
1
Bakz
Мне нужно посчитать длину и высоту объекта по координатам в двумерном пространстве. Допустим есть фигура случайной формы и есть координаты всех точек этой фигуры. Фигура может быть расположена в пространстве как угодно.
Конечная цель определить на сколько процентов длинна больше ширины.

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

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

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

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

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

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

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

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

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

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

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


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