2013-03-22 29 views
2

我在做一個運動檢測程序,並且想要確定一個人是否正在順時針或逆時針移動他們的手。有人會知道這樣做的最好方法嗎? (我在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); 

基準是左上子畫面的(或其天然0, 0點atan2),所以這段代碼對鼠標的座標進行採樣。

此外,您考慮的樣本越多(我只是抽樣2 samples[len-2]samples[len-1]),對cw或ccw的決策就越好。

最後,也是最重要的一點,我的腳本確實在弧度計算中考慮負數,它假設一切都是正的 - 這需要一些微調。注意:由於數組長度會最大,所以您現在需要清除samples

我的腳本不完整,歡迎編輯,建議和闡述。我的希望是它給你一些需要考慮和努力的東西。