Форум сайта python.su
0
Мне нужно посчитать длину и высоту объекта по координатам в двумерном пространстве. Допустим есть фигура случайной формы и есть координаты всех точек этой фигуры. Фигура может быть расположена в пространстве как угодно.
Конечная цель определить на сколько процентов длинна больше ширины.
На данный момент у меня есть:
1. Координаты (x, y) всех точек из которых состоит фигура.
2. Шесть крайних точек и расстояние между ними.
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Не могу понять как правильно посчитать высоту. По идее высота это отрезок перпендикулярный длине, но как его определить не понимаю.
Пробовал создать линию перпендикулярную длине объекта и проверить все точки фигуры на принадлежность этой линии но это не гарантирует что высота фигуры конкретно в этом месте будет максимальной или хотя бы средней.
Использую python3.7 и sympy.
Буду очень благодарен за помощь.
Офлайн
857
BakzЧто, прямо всё множество точек, которое образует фигуру? Обычно это выражается уравнением ГМТ (геометрическое место точек) и любая точка, удовлетворяющая уравнению ГМТ, принадлежит ему.
1. Координаты (x, y) всех точек из которых состоит фигура.
BakzОни уже принадлежат фигуре, поэтому в них нет необходимости. Длина и высота фигуры определяются через всё множество точек.
2. Шесть крайних точек и расстояние между ними.
BakzДай определение длины фигуры и высоты фигуры сначала. Если они у тебя необычные, ты должен дать определения, прежде чем искать эти величины.
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Отредактировано py.user.next (Дек. 12, 2019 01:32:40)
Офлайн
22
по координатам в двумерном пространствеТ.е. всё-таки на плоскости, чтоб понятнее было.
На данный момент у меня есть:Как вариант, можно построить новую систему координат, в которой осью X будет прямая с этим самым длинным отрезком. Пересчитать координаты всех вершин в эту новую систему, а тогда высотой можно будет считать самую большую разницу среди Y-координат.
…
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Офлайн
22
Офлайн
857
BakzОпределения длины фигуры и определения высоты фигуры я так и не вижу.
На данный момент у меня есть:
1. Координаты (x, y) всех точек из которых состоит фигура.
2. Шесть крайних точек и расстояние между ними.
3. Самый длинный отрезок построенный из двух крайних точек что я принимаю за длину объекта.
Отредактировано py.user.next (Дек. 12, 2019 09:12:45)
Офлайн
0
py.user.nextДлина фигуры это самое большое расстояние между крайними противостоящими точками.
Офлайн
0
StriverМне нравится идея. Вот только я пока не понимаю как это сделать программно. Есть какая-то библиотека для этого? Не хочется писать код если уже есть готовое решение.
Офлайн