×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

我就是这么做的,我的算法是:

平均速度:

每两个 frame update 后,
dx = dx2 - dx1
dy = dy2 - dy1
vx1 = dx / 2 因为是 2 frames
vy1 = dy / 2

然后下一个 frame update,再算一个新的 vx2 & vy2 ,取 harmonic mean of vx1 and vx2, and vy1 and vy2 得到 3 个 frame 的 平均速度

这样算的话好像经常可以得到最后一个值为0,好奇怪啊。是不是哪里概念上错了

============================

加速度:

当 finger up 的时候,把每一个 frame update 改变的距离都加起来,除以所用的 frame number; 我想这应该算对吧,不过非常麻烦去算最后的方向,因为有 x,y, -x, -y 的方向,所以我在这里没办法继续…… :(
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 在触摸品上如何算手指移动的速度?如果只是想得到一个 pixel per frame 这样的值。
    在触摸屏里,有一个 frame update 的 event,每次 trigger 可以读取到当前的 coordinate。

    如果我想得到从手指开始 down,然后移动,到手指离开这之间发生的平均速度,应该怎么算呢?

    试了好几个方法,好像都是太准确啊,我主要是要实现惯性移动,就是手指离开后,如果移动速度快到一个程度,object 会继续移动一段然后停下这种效果

    有没有什么好的想法交流一下,谢谢
    • 用平均速度或者最后的速度除以运动的时间算出一个加速度,然后用这个加速度进行减速。
      • 我就是这么做的,我的算法是:
        平均速度:

        每两个 frame update 后,
        dx = dx2 - dx1
        dy = dy2 - dy1
        vx1 = dx / 2 因为是 2 frames
        vy1 = dy / 2

        然后下一个 frame update,再算一个新的 vx2 & vy2 ,取 harmonic mean of vx1 and vx2, and vy1 and vy2 得到 3 个 frame 的 平均速度

        这样算的话好像经常可以得到最后一个值为0,好奇怪啊。是不是哪里概念上错了

        ============================

        加速度:

        当 finger up 的时候,把每一个 frame update 改变的距离都加起来,除以所用的 frame number; 我想这应该算对吧,不过非常麻烦去算最后的方向,因为有 x,y, -x, -y 的方向,所以我在这里没办法继续…… :(