2014-02-22 46 views
0

我有存儲所述輪胎的旋轉和平移XNA如何旋轉汽車輪胎?

tireMatrix = Matrix.CreateFromYawPitchRoll(yaw, pitch, roll); 

This happens

當我前進的輪旋轉細,但是當我把它作爲轉動所示的圖像矩陣。任何人都可以請幫忙。

回答

1

我只是猜測如何設置代碼的其餘部分(例如輪胎是汽車的一部分還是自己的模型等)。這是許多做你正在做的事情的方法之一。汽車輪胎只需要沿着兩個軸線旋轉:汽車的車軸和汽車的正常軸線。所以要做正向旋轉,你必須做這樣的事情。 (這是假設你的輪胎是汽車網的一部分,並有自己的骨頭)

tireMatrix *= Matrix.CreateRotationX(roll); //or whichever axis your axle is on 

然後沿垂直軸線轉動的輪胎:

tireMatrix *= Matrix.CreateRotationY(turnangle); 

如果輪胎是自己的模式(這是你的形象是什麼樣子),然後嘗試:

//rotate the tire along the right axis to make it spin 
tireMatrix *= Matrix.CreateFromAxisAngle(tireMatrix.Right, theta); 
//rotate the tire along its normal axis 
tireMatrix *= Matrix.CreateFromAxisAngle(tireMatrix.Up, turntheta); 

另見here更多的幫助在動畫

+0

謝謝你的工作。 – user1281566

0

它看起來像我,你應用幾次旋轉的順序,而不考慮在每個轉換髮生的軸的變化。

在您的第一次轉換中,您轉向右側並相應地轉動輪胎。但之後它會稍微向右轉,然後之前的滾動動作會產生這種「翻滾」運動。