2011-12-06 27 views

回答

1

我希望我能正確理解你的問題,但它應該很容易。

頭部關節有3個座標(X,Y,Z)。 Z是距kinect深度相機的距離。 您可以將kinect深度相機視爲位於世界的(0,0,0)。這意味着深度圖像的中心是原點。

在這種情況下,你可以使用ATAN2計算X和Y的角度是這樣的:因爲它可以節省你從一個部門到零崩潰的情況下


X angle = atan2(headjoint.Position.Y, headjoint.Position.Z); 
Y angle = atan2(headjoint.Position.X, headjoint.Position.Z); 

  • 我用ATAN2代替ATAN Z值爲0. Atan2知道如何處理這種情況。
  • 這些結果角度以弧度給出。
  • X角度表示圍繞X軸的旋轉。
  • Y角表示圍繞Y軸的旋轉。
0

安德烈的回答是正確的,但X和Y角度是錯誤的方式。

如果你想找出在X軸玩家的角度(使用C#)做的事:

xAngle = Math.Atan2(headjoint.Position.X, headjoint.Position.Z); 

要查找在Y軸的角度做:

yAngle = Math.Atan2(headjoint.Position.Y, headjoint.Position.Z); 

這對我來說非常有用,因爲我試圖將音頻光束引向播放器。乾杯!

+0

繞軸旋轉意味着在垂直於該軸的平面內移動一個點(或以其他方式放置其法線=軸的平面)。如果寫atan2(x,z),則可以有效地計算XOZ平面中的角度。在這個平面上的旋轉稱爲圍繞Y軸的旋轉。 –

相關問題