确定圆周运动的方向

Posted

技术标签:

【中文标题】确定圆周运动的方向【英文标题】:Determine Direction of Circular Motion 【发布时间】:2013-03-22 22:37:54 【问题描述】:

我正在做一个运动检测程序,想确定一个人的手是顺时针还是逆时针运动。有人知道最好的方法吗? (我在 AS3 中编码,但任何类似 ECMA 的代码都会有所帮助)。

我相信一种方法是确定,例如,左右后跟从上到下还是从下到上等等——有没有更好的方法?

【问题讨论】:

【参考方案1】:

如果你有一个参考点 (0,0),你可以采样角度随时间的变化:

var sprite:Sprite = new Sprite();
var samples:Array = [];
setInterval(function()
    var len = samples.push(Math.atan2(sprite.mouseY,sprite.mouseX));
    if ( len >=2 ) 
        if ( samples[len-2]-samples[len-1] > 0 ) 
            // clockwise
         else 
            // counter-clockwise
        
    
,1000/stage.frameRate);

引用是精灵的左上角(或atan2 的自然0,0 点),所以这个sn-p 采样相对于精灵的鼠标坐标。

此外,您考虑的样本越多(我只对 2 个samples[len-2]samples[len-1] 进行抽样),cw 或 ccw 的决策就越好。

最后,也是最重要的一点,我的脚本确实在弧度计算中考虑了负数,它假设一切都是正数 - 这需要一些调整。

PS:您需要不时清除samples,因为数组长度会达到最大值。

我的脚本不完整,欢迎编辑、建议和详细说明。我希望它能给你一些考虑和工作的东西。

【讨论】:

以上是关于确定圆周运动的方向的主要内容,如果未能解决你的问题,请参考以下文章

如何区分方向键运动和操纵杆运动?

KML 运动线方向

统一。如何使玩家转向运动方向

UNITY怎么让粒子朝向发射方向运动

如何在 Flutter 中检测设备运动方向?

检测加速度计在 y 轴上的运动方向