Как добавить новые сегменты на полигон, используя входные каракули от пользователей

Я хочу создать пользовательский интерфейс для редактирования полигонов. Мой вход представляет собой векторное изображение (кубический Безье). Основная цель состоит в том, чтобы пользователи могли рисовать каракули для создания новых сегментов многоугольника, так что это похоже на полуавтоматическое рисование многоугольника с учетом существующего многоугольника.

введите здесь описание изображения

Основываясь на предположении, что пользовательский ввод рисуется с помощью мыши, поэтому он обычно грубый и довольно неточный.

Новые сегменты — это не только прямые линии, но и кривые. Поэтому я думаю, что новые сегменты также должны соответствовать грубому вводу пользователей: введите здесь описание изображения

Другой случай:

введите здесь описание изображения

Это разрешимо? Любая обратная связь очень ценится, я также хочу знать, есть ли документ с подобной проблемой.


person azer89    schedule 20.02.2014    source источник


Ответы (2)


Вот способ начать с: -

  1. Делайте связанные компоненты на изображении, чтобы получить пользовательские каракули
  2. попытайтесь подогнать каракули к линии, кругу, параболе ..
  3. Что бы ни давало минимальную квадратичную ошибку, это и есть желаемая кривая.
  4. Нарисуйте нужную кривую между конечными точками каракулей.

Ссылки:-

Подключенные компоненты

Подбор кривой

person Vikram Bhat    schedule 20.02.2014
comment
Я знаю подгонку кривой, но результирующая кривая также должна учитывать существующие сегменты (см. пример 2, две кривые должны образовывать круг, хотя каракули недостаточно хороши) - person azer89; 21.02.2014

Решил проблему,

Я использовал спираль Эйлера

http://www.lems.brown.edu/vision/researchAreas/EulerSpiral/

person azer89    schedule 18.05.2014