确定圆周运动的方向

时间:2013-03-22 22:37:55

标签: actionscript-3 motion-detection

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

我认为,有一种方法可以确定,例如,左右是后跟上下或后下,等等 - 是否有更好的方法?

1 个答案:

答案 0 :(得分: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点),因此该片段相对于精灵对鼠标坐标进行采样。

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

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

PS:你要一次又一次地清除samples,因为数组长度会最大化。

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