связанный с этим вопрос:
An algorithm for inflating/deflating (offsetting, buffering) polygonsАлгоритм для надувания/сдувания (компенсируя, буферные) полилинии
Разница заключается в том, что я искал способ, чтобы раздуть данную полилинию в многоугольник:
Я получил следующий вход:
- Список 2D точек, которые образуют ро lyline (ярко-зеленый в эскизе)
- Ширина линии
Вывод должен быть многоугольник, который показывает, как выглядит линия расширена за счет ширины.
Первоначально я думал, что могу использовать Boost::Geometry::buffer для этого, к сожалению, он просто кажется, что поддерживает коробки на данный момент. Было бы предложено решение с использованием Boost::Geometry или GDAL/OGR.
UPDATE:
Я решил использовать Clipper библиотеку и ее OffsetPolyLines функцию. Как только Boost Geometry будет выпущена с поддержкой Polyline-Buffer, я переключусь на Boost (поскольку все остальное работает с Boost в моем программном обеспечении).
Как-то выглядит [Прямой скелет] (http://ru.wikipedia.org/) wiki/Straight_skeleton), но с обратным процессом. – Cyril