2012-03-23 60 views
1

我想在Ogre3D中的自定義中心點周圍旋轉一個節點,但我似乎無法找到一種方法來做到這一點。 我已經研究過四元數和矩陣,但他們似乎沒有做我想做的事情(但說實話,我不太確定我完全理解他們)。Ogre3D:相對於自定義中心點的旋轉

下圖說明了我想要的東西(從頂部看到的牆上的'門')。 'o'表示中心點(鉸鏈),'x'表示門,'='表示牆。

- Original position 
- What I get:   What I want: 

    == x x o x x ==  == x o x x x == 

- After a 90 degree clockwise rotation: 
- What I get:   What I want: 

     x 
     x     x 
    ==  o  ==  == o  == 
     x     x 
     x     x 
          x 
+0

爲什麼不結合過渡和旋轉? – 2012-03-23 10:09:19

回答

2

如果這是關於一個對象,你想總是圍繞同一個點旋轉(就像一個門),最簡單的方法實際上是改變對象的軸心點。

這可以很容易地由您的藝術家在Maya/Max/Blender中完成。

或者您可以將門附加到所需位置的額外場景節點。然後旋轉額外的場景節點。這有好處,你可以做任何事情從食人魔。

+0

聽起來很有希望。我們將試一試。 – 2012-03-23 11:13:15

0

從視圖matrix calculus點的基本方法是:

  • 移動模式,以點

  • 旋轉模型

首先,你可以嘗試執行Translate(...),之後Rotate(...),一個ti我可以通過使用一個單一矩陣來優化,可以通過平移和旋轉數據進行優化,因此可以通過一個單獨的Transform(...)來執行您想要的操作。致電

希望這會有所幫助。