2010-03-31 90 views
0

我想旋轉對象面對它移動的方向。我們希望它面對的歸一化速度矢量..幫助...請...我如何創建一個給定方向矢量的旋轉矩陣?

+1

有多種方法可以做到這一點。你想沿着兩點之間的大圓圈旋轉,還是想保留對象的「向上」概念? – 2010-03-31 07:43:18

回答

2

你試過Matrix.CreateLookAtMSDN)?

// Matrix.CreateLookAt(eyeLocation, lookAt, upVector); 
Matrix.CreateLookAt(currentPosition, currentPosition + velocity, Vector.Up); 
+0

爲了澄清,我們的目標是在x,y平面上,我們想要圍繞z旋轉。我嘗試了你的建議,但它圍繞X軸擺動,就好像它在旋轉之前應用平移一樣。 – Neosani 2010-03-31 07:58:55

+0

如果您有2D平面,您可能更喜歡'Vector3.Backward'。如果它似乎在旋轉之前應用翻譯,爲什麼不切換矩陣的順序呢?排序應該是'RotateMatrix * TranslateMatrix * Vector'。如果你使用矩陣,A * B!= B * A'。 – 2010-03-31 08:10:45

+0

我應用的唯一矩陣來自CreateLookAt,它似乎應用某種翻譯以及旋轉。 – Neosani 2010-03-31 08:14:18

相關問題