2015-02-23 95 views
5

我的3d程序中,物體的旋轉由四元數表示,如[0.130526, 0.0, 0.0, 0.991445]。該軟件適用於右手座標系與Z軸朝上(就像在3ds Max):將四元數從右手座標系轉換爲左手座標系

enter image description here

在另一方面,我的應用程序中使用左手座標系和Y軸高達

enter image description here

我怎麼能系統進行改造,從一個我四元數座標到另一個,與該軸是向上的尊重?

+0

[翻轉四元數從右到左手座標的可能的副本](http://stackoverflow.com/questions/1274936/flipping-a-quaternion-from-right-to-left-handed-coordianates) – 2015-02-23 12:27:40

+0

@ PaulR所引用的問題是5yo,涵蓋了我的一半問題(交換軸)並且沒有得到回答(除了「你不能」,當我清楚地看到它每天工作時 - 某些軟件可以將它們轉換爲模型導出,但我不會遺憾的是沒有源代碼)。 – PolGraphic 2015-02-23 12:29:54

回答

8

圍繞軸(u,v,w)的角度x的旋轉可以用具有實部cos(x/2)和非實部sin(x/2)*(u,v,w)的四元數來表示。

如果座標原點爲(u,v,w)在原來的三面體中,它們將是(u,w,v)在你的三面體中。因此,如果原始四元數是(a,b,c,d) - a + ib + jc + kd - 則四面體必須轉換爲三面體中的(a,b,d,c)。

編輯

但是因爲你的三面體是左撇子,角度也有被逆轉的,所以相同的旋轉終於可以用四元數表示(A,-B,-d,-c)在你的三面體裏。

+0

只是爲了確認:在這種情況下'a'是旋轉角度,而'b' ='u','c' ='v','d' ='w',是否正確? – calvin 2016-12-08 20:14:32

+1

@calvin a是四元數= cos(x/2)的實部,旋轉角度爲x。 b,c,d是四元數的虛部,等於軸座標u,v,w乘以sin(x/2) – 2017-03-09 19:38:45

相關問題