是否有一个有效的公式来使用变量 Xrotation Z 旋转和 Yrotation 作为输入在三维空间中映射一个四维点?
我特别需要临时语言,但任何其他语言都适合。
您可能正在谈论的四维旋转称为四元数。当谈论在 3D 空间中围绕每个轴旋转时,我们称之为欧拉角。维基百科有关于这些转换的页面,其中包括这个 python 源:
class Quaternion_toEulerianAngle():
def __init__(self, x, y, z, w):
self.x = x
self.y = y
self.z = z
self.w = w
def X(self):
ysqr = self.y*self.y
t0 = +2.0 * (self.w * self.x + self.y*self.z)
t1 = +1.0 - 2.0 * (self.x*self.x + ysqr)
X = math.degrees(math.atan2(t0, t1))
return X
def Y(self):
ysqr = self.y*self.y
t2 = +2.0 * (self.w*self.y - self.z*self.x)
t2 = 1 if t2 > 1 else t2
t2 = -1 if t2 < -1 else t2
Y = math.degrees(math.asin(t2))
return Y
def Z(self):
ysqr = self.y*self.y
t3 = +2.0 * (self.w * self.z + self.x*self.y)
t4 = +1.0 - 2.0 * (ysqr + self.z*self.z)
Z = math.degrees(math.atan2(t3, t4))
return Z