2017-07-14 87 views
2

我試圖創建一個4D環境,類似於Miegakure的。如何使用4d轉子

我無法理解如何表示旋轉。 Miegakure的創造者寫了這篇小文章解釋他爲4d轉子做了一個班。 http://marctenbosch.com/news/2011/05/4d-rotations-and-the-4d-equivalent-of-quaternions/

我該如何實現這個類的功能?特別是旋轉矢量和其他轉子的功能,並獲得相反的?

我將不勝感激一些僞代碼示例。 非常感謝任何困擾回答的人。

+0

難道他已經提供了實現:

展示如何乘這些單位的表格可以在此頁面上找到? – meowgoesthedog

+0

@spug我沒有看到任何...這些只是標題,但我懶得挖在那裏的檔案... – Spektre

回答

1

解決圍繞任意矢量的旋轉會讓你瘋狂4D。是的,這裏有像The Euler–Rodrigues formula for 3D rotations expansion to 4D那樣的方程式,但它們都需要求解方程組,它的使用對我們來說實在不太直觀,在4D

我使用平行(3D類似於圍繞主軸系轉動在)面而不是旋轉在4D有他們的6 XY,YZ,ZX,XW,YW,ZW所以才創建旋轉矩陣(類似於3D)。我使用5x5的homogenuous變換矩陣4D所以旋轉看起來是這樣的:

xy: 
(c , s ,0.0,0.0,0.0) 
(-s , c ,0.0,0.0,0.0) 
(0.0,0.0,1.0,0.0,0.0) 
(0.0,0.0,0.0,1.0,0.0) 
(0.0,0.0,0.0,0.0,1.0) 
yz: 
(1.0,0.0,0.0,0.0,0.0) 
(0.0, c , s ,0.0,0.0) 
(0.0,-s , c ,0.0,0.0) 
(0.0,0.0,0.0,1.0,0.0) 
(0.0,0.0,0.0,0.0,1.0) 
zx: 
(c ,0.0,-s ,0.0,0.0) 
(0.0,1.0,0.0,0.0,0.0) 
(s ,0.0, c ,0.0,0.0) 
(0.0,0.0,0.0,1.0,0.0) 
(0.0,0.0,0.0,0.0,1.0) 
xw: 
(c ,0.0,0.0, s ,0.0) 
(0.0,1.0,0.0,0.0,0.0) 
(0.0,0.0,1.0,0.0,0.0) 
(-s ,0.0,0.0, c ,0.0) 
(0.0,0.0,0.0,0.0,1.0) 
yw: 
(1.0,0.0,0.0,0.0,0.0) 
(0.0, c ,0.0,-s ,0.0) 
(0.0,0.0,1.0,0.0,0.0) 
(0.0, s ,0.0, c ,0.0) 
(0.0,0.0,0.0,0.0,1.0) 
zw: 
(1.0,0.0,0.0,0.0,0.0) 
(0.0,1.0,0.0,0.0,0.0) 
(0.0,0.0, c ,-s ,0.0) 
(0.0,0.0, s , c ,0.0) 
(0.0,0.0,0.0,0.0,1.0) 

c=cos(a),s=sin(a)a是旋轉的角度。旋轉軸經過座標系原點(0,0,0,0)。欲瞭解更多信息一起來看看這些:

+0

任何想法,減號的地方?描述AB(i,j)(其中A,B是XYZW之一)的通用公式的鏈接會很好。我想知道這些標誌是否根據旋轉的一些右旋方向來選擇。如果是這樣,4D中的定義如何? – DolphinDream

+0

@DolphinDream不知道你的意思是由'AB(i,j)'和減號(因爲註釋表明都是4D向量)?如果你的意思是「矩陣*矢量」,那麼你提到的是什麼減號?如果'-s = -sin(dangle)'那麼是它確定旋轉CW/CCW。您可以使用旋轉和未旋轉矢量的點積符號來確定旋轉的方式。如果你正在寫**歐拉 - 羅德里格斯公式**,那麼就沒有直接的方程式,而是需要爲運行中的每次旋轉求解一個方程組。這就是爲什麼使用增量式平面旋轉更好/更容易實現的原因。 – Spektre

0

我能夠學習後使用轉子更多的受拜上此YouTube一系列關於幾何代數:https://www.youtube.com/watch?v=PNlgMPzj-7Q&list=PLpzmRsG7u_gqaTo_vEseQ7U8KFvtiJY4K

這真是很好的解釋,我把它推薦給任何人想要做這種東西。

如果您已經瞭解四元數乘法,乘法轉子不會有任何不同,而I,J,四元數的K單元是模擬幾何代數的基礎bivectors:E12,E13,E23

因此,4D中的轉子將是(A + B * e12 + C * e13 + D * e14 + E * e23 + F * e24 + G * e34 + H * e1234)。 http://www.euclideanspace.com/maths/algebra/clifford/d4/arithmetic/index.htm