2017-07-14 88 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