2015-10-30 5 views
0

Я исследовал алгоритм Дугласа Пиккера. Может быть, я смогу использовать его в качестве альтернативного решения для простого потока моего рисунка. Но моя проблема в том, что когда я рисую, предыдущие нарисованные точки также движутся. Есть ли способ сделать нарисованные линии неподвижными при рисовании внутри одного и того же набора точек в массиве.Рисование инструмента для рисования свободного хода в холсте

Вот code

ответ

1

Событие mousemoves дает вам метку времени (event.timeStamp).

Использование временной метки, что для вычисления расстояния перемещается с течением времени (расстояние/время == скорость): var distance=Math.sqrt((prevX-thisX)*(prevX-thisX)+(prevY-thisY)*(prevY-thisY));

Чтобы заставить линию к оси Х: Если скорость ниже порога Вашего «медленный», просто используйте предыдущую Y-координату вместо Y, заданную событием мыши.

+0

Можете ли вы привести пример jsfiddle? я буду очень благодарен. – jt25

+0

@ThomasM. Я не в состоянии делать расширенные ответы - извините. Но концепция довольно проста. Просто вычислите скорость мыши с момента последней mousemove, а затем '[clamp | не зажимать] 'координату X, основанную на скорости: [slow | не медленно]. – markE

+0

Не беспокойтесь. Кстати, я исследовал алгоритм Дугласа Пиккера. Может быть, я смогу использовать его в качестве альтернативного решения для простого потока моего рисунка. Но моя проблема в том, что когда я рисую, предыдущие нарисованные точки также движутся. Есть ли способ сделать нарисованные линии неподвижными при рисовании внутри одного и того же набора точек в массиве. Https: //gist.github.com/twss/d1a831927c25f8e88f3b – jt25