如何模拟鼠标加速?

时间:2012-01-07 20:53:36

标签: objective-c mouse acceleration

我写过iPhone - Mac,客户端 - 服务器应用程序,允许通过触摸板使用鼠标。

现在,在每个发送的数据包上,我将光标移动到特定数量的像素(现在为10px)。 这不准确。当我将灵敏度改为1px时,它会变慢。

我想知道如何增强可用性并模拟鼠标加速。

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

我建议采用以下程序:

关于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。
  8. 关于MAC:

    1. 将鼠标移动到dx_new / dy_new方向的xy像素。
    2. 注意:这可能会抖动很多,你可以尝试在步骤(3)之后平均速度与前两个或三个测量速度的平均值,如果它抖动太多。