алгоритм контура векторной формы - PullRequest
4 голосов
/ 21 марта 2011

рассматривают красную линию как последовательность точек

enter image description here

Я ищу алгоритм для создания контуров толстой черной формы (также какпоследовательность точек) такая, что они упорядочены чисто.И контур должен также учитывать минимальное расстояние до себя.

Какой алгоритм я могу использовать для достижения этой цели?

1 Ответ

2 голосов
/ 31 марта 2011

Вам потребуется два типа алгоритмов смещения :

  1. Смещение кривой в обоих направлениях для создания дорожки
  2. Смещение замкнутой кривой внутрь для получения одного или нескольких меньших замкнутых многоугольников.

Пусть r - расстояние до красной линии, а b - желаемая толщина стены между черными линиями / дорожками.

  • Смещение красной линии на r с использованием алгоритма 1. Это может привести к появлению дорожки, которая перекрывает себя, т. Е. Имеет «похожие на пятна» области.
  • Сместите красную линию внутрь, используя алгоритм 2. Используйте двоичный поиск, чтобы найти расстояние d, на котором фигура разделяется на две части или исчезает. Если d> b, то смещение внутрь на d - b для создания второй области. В противном случае алгоритм не работает.
  • Вычтите вторую область из первой.
...