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

Центральна линия (или скелет)

Добавлено: 23 апр 2019, 20:14
Dmitry Stasev
Есть пересечение 2-х полигонов, хочется "поделить его поровну"
3.png
3.png (14.79 КБ) 3754 просмотра
Подскажите, есть ли для QGIS плагин, позволяющий провести центральную линию вытянутого объекта.
Может быть есть какие идеи/алгоритмы.

Re: Центральна линия (или скелет)

Добавлено: 24 апр 2019, 14:44
nikost
Я когда-то мучался с центральными линиями полигонов - ничего лучшего чем загрузить полигоны в GRASS, и сделать по ним (точнее по точкам вершин) полигоны Вороного со скелетными линиями не придумал.

Код: Выделить всё

v.voronoy -s input = input_polygons@PERMANENT output=voronoi_skleton 
Где флаг -s собственно отрисовывает центральные линии (скелетоны) входных полигонов

Получается как-то так:
2019-04-24 14_42_15-GRASS GIS Map Display_ 1 - newLocation_PERMANENT.png
2019-04-24 14_42_15-GRASS GIS Map Display_ 1 - newLocation_PERMANENT.png (69.09 КБ) 3713 просмотров

Re: Центральна линия (или скелет)

Добавлено: 24 апр 2019, 15:33
Dmitry Stasev
Спасибо,nikost, в этом направлении и иду, только хочу без GRASS обойтись
полигоны Вороного уже рисую )

Re: Центральна линия (или скелет)

Добавлено: 24 апр 2019, 18:40
gamm
Dmitry Stasev писал(а):
24 апр 2019, 15:33
полигоны Вороного уже рисую
точек побольше в границу навставляйте.

А вообще, лучше делать на растре - построить дистанционное преобразование от границ, взять две точки и построить путь максимальной стоимости, взяв построенное расстояние как стоимость. А потом упростить этот путь каким-нибудь Дугласом-Пукером.