Выборка захваченных точек данных - PullRequest
0 голосов
/ 09 июня 2011

Я работаю над созданием веб-приложения, которое позволяет пользователям рисовать на холсте (с помощью событий мыши или касания).

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

Теперь я хочу сделать следующее:

  • Сохранение полученных координат в массиве (и использовать его для рисования)

  • «Выборка» захваченных данных, т.е. только использовать некоторые из точек для рисования нарисованный путь пользователем на экран

В чем я сейчас уверен, так это в том, как я бы «выбрал» массив точек.

Итак, чтобы лучше объяснить себя, вот что я имею в виду:

  1. Пользователь рисует на холсте путь (пальцами или мышью)

  2. Всего при наведении курсора / перемещении мыши фиксируется 20 точек

  3. Если бы мы рисовали траекторию, используя все 20 точек, она будет довольно неровной и не гладкой. Так что я хочу урезать количество точек от 20 до 8 и использовать кривые Безье для их соединения?

Просто хотел посмотреть, реализовал ли кто-нибудь что-то похожее на это. Если кто-то играл в Flight Control на ipad / iphone, когда пользователь рисует путь для самолета, он реализует это, используя некоторые точки касания, а не все. Возможно, они используют таймер?

1 Ответ

0 голосов
/ 10 июня 2011

Ответ, который я искал, оказался алгоритмом Ramer – Douglas – Peucker .

Вот реализация javascript алгоритма, если кому-то интересно - https://gist.github.com/826148

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...