2012-01-07 45 views
2

我寫了iPhone - Mac,客戶端 - 服務器應用程序,允許通過觸摸板使用鼠標。如何模擬鼠標加速?

現在在發送的每個數據包上,我都將光標移動了大量的像素(現在爲10px)。 這不準確。當我將靈敏度更改爲1px時,它會變慢。

我想知道如何增強可用性和模擬鼠標加速。

任何想法?

回答

6

我建議以下程序:

ON THE IPHONE:

  1. 確定xy方向移動的距離,讓我們命名這個dxdy
  2. 計算此對應的總距離:dr = sqrt(dx^2+dy^2)
  3. 確定已經過了多少時間,並計算移動的速度:v = dr/dt
  4. 執行關於速度一些非線性變換,例如:v_new = a * v + b * v^2(開始a=1b=0爲沒有加速度,然後用於實驗的最佳值)
  5. 計算新的距離:dr_new = v_new * dt
  6. 計算新距離x/y方向: dx_new = dx * dr_new/drdy_new = dy * dr_new/dr
  7. 發送到dx_newdy_new到Mac。

ON THE MAC:

  1. 移動鼠標通過dx_newdy_new像素x/y方向。

注:這可能抖動很多,你可以試試平均(3)與前兩個或三個測量的速度,如果它跳動得多步驟後的速度。

+0

據我瞭解,會有一些波動。如果我測量距離和速度 - 數據包將在特定操作後發送(直到移動結束?)。 鼠標必須與手指同時在觸摸屏上移動。 – yershuachu 2012-01-08 09:53:13

+0

要說清楚。我存儲以前的X和Y位置和觸摸時間,並使用當前觸摸x,y和當前觸摸時間進行計算。它完美的作品。 – yershuachu 2012-01-09 16:10:38