Как симулировать ускорение мыши? - PullRequest
2 голосов
/ 08 января 2012

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

Теперь при каждом отправленном пакете я перемещаю курсор на определенное количество пикселей (теперь 10 пикселей).Это не точно.Когда я изменяю чувствительность на 1px, она замедляется.

Мне интересно, как повысить удобство использования и моделировать ускорение мыши.

Есть идеи?

1 Ответ

7 голосов
/ 08 января 2012

Я предлагаю следующую процедуру:

НА IPHONE:

  1. Определите расстояние, пройденное в направлении x и y, назовемthis dx и dy.
  2. Рассчитайте общее расстояние, которое соответствует: dr = sqrt(dx^2+dy^2).
  3. Определите, сколько времени прошло, и вычислите скорость движения: v = dr/dt.
  4. Выполните некоторое нелинейное преобразование скорости, например: v_new = a * v + b * v^2 (начните с a=1 и b=0 без ускорения, а затем поэкспериментируйте для оптимальных значений)
  5. Рассчитать новое расстояние: dr_new = v_new * dt.
  6. Рассчитать новые расстояния в направлении x / y: dx_new = dx * dr_new / dr и dy_new = dy * dr_new / dr.
  7. Отправить dx_new и dy_new на Mac.

НА MAC:

  1. Переместите мышь на dx_new и dy_new пикселейв направлении x / y.

ПРИМЕЧАНИЕ: Это может сильно дрожать, вы можете попробовать усреднить скорость после шага (3) с двумя предыдущими или тремяизмеренныйскорости, если она сильно дрожит.

...