Страница 1 из 1

Поиск многоугольника с определенным размером.

Добавлено: 20 авг 2020, 18:32
Dezmond
Добрый вечер коллеги! Прошу вашей помощи, тк сам уже голову сломал в поиске подхода для определения размера произвольного многоугольника.
Задача стоит так, нужен найти математическое решение определения размера многоугольника. Что я подразумеваю под размером, это кратчайшее расстояние от точки до противоположного ребра, то-есть перпендикуляр.

Другими словами мне нужно отсечь все многоугольники которые в пределах погрешности можно уже считать линией.

Re: Поиск многоугольника с определенным размером.

Добавлено: 20 авг 2020, 18:33
Dezmond
Без имени-2.png
Без имени-2.png (261.38 КБ) 5928 просмотров

Re: Поиск многоугольника с определенным размером.

Добавлено: 20 авг 2020, 19:05
trir
считай перпендикуляры из всех вершин - в чём проблема?

Re: Поиск многоугольника с определенным размером.

Добавлено: 20 авг 2020, 22:44
Dezmond
Вот в чем:
Без имени-3.png
Без имени-3.png (81.5 КБ) 5896 просмотров

Re: Поиск многоугольника с определенным размером.

Добавлено: 21 авг 2020, 05:59
trir
у тебя тут не одна вершина

Re: Поиск многоугольника с определенным размером.

Добавлено: 21 авг 2020, 06:55
gamm
План А. Способ простой и практический - снести на растр нужной детальности, и делать эрозию до полного исчезновения. Число эрозий умноженное на два есть максимальная толщина. Если порог толщины задан, смотреть, что раньше случится, все исчезнет, или выполнится заданное число эрозий.

План В. Способ точный, но муторный - разбить фигуру на треугольники, и смотреть их толщину. Разбиение можно найти готовое, его используют для рисования в OpenGL. Но тут придется долго и муторно разбирать варианты, кто на ком лежал. Можно построить скелетон, и с ним играться. Но если для дела, то план А, он надежный :mrgreen:

P.S. Кстати, описание задачи не корректное, я ориентировался на слова "можно считать линией"

Re: Поиск многоугольника с определенным размером.

Добавлено: 21 авг 2020, 08:54
gamm
Update. Со скелетоном имелось в виду построить вокруг него буфер заданного радиуса, и если регион целиком лежит внутри буфера, то он типа линия. Но я все же за план А.

Re: Поиск многоугольника с определенным размером.

Добавлено: 28 авг 2020, 16:00
Dezmond
Вообщем после пробы разных построений было принято решение о построении от узла (по очереди из каждого) кратчайшего расстояния до отрезка (перебирая каждый отрезок по очереди). Потом каждое построение сравнивать с расстояниями до узлов отрезка (тем самым оставлять в выборке только перпендикуляры (построенное кратчайшее расстояние не должно равняться расстоянию до узлов) ). Соответственно самый длинный построенный перпендикуляр будет называться максимальной толщиной объекта!
gamm писал(а):
21 авг 2020, 06:55
"можно считать линией"
я наверное не правильно свою мысль изложил, для моей задачи объекты с толщиной < 7мм я уже считаю "линиями", то есть не имеющие площадь.

Re: Поиск многоугольника с определенным размером.

Добавлено: 28 авг 2020, 17:00
gamm
Dezmond писал(а):
28 авг 2020, 16:00
я наверное не правильно свою мысль изложил
скорее всего. При радиусе 3.5 мм ваш объект полностью погрузится в буфер скелетона. А что представляет собой ваш последний алгоритм, понять невозможно, но, скорее всего, можно опять придумать контрпример типа того, что на картинке выше с двутавровым швеллером.

Re: Поиск многоугольника с определенным размером.

Добавлено: 01 сен 2020, 11:24
antonv
Dezmond, так а "двутавровый швеллер" из рисунка выше - он не должен считаться линией? Или должен считаться тремя?