当我在游戏中向上看时,相机沿 x 轴旋转,这是正确的,但是当我向右看时,相机先沿 x 轴旋转,然后沿 z 轴旋转
这是旋转的代码(来自wikipedia):
def rotate(point, angle):
x, y, z = point
a, b, c = angle
a, b, c = math.radians(a), math.radians(b), math.radians(c)
rx = (cos(b) * cos(c) * x +
(sin(a) * sin(b) * cos(c) - cos(a) * sin(c)) * y +
(cos(a) * sin(b) * cos(c) + sin(a) * sin(c)) * z)
ry = (cos(b) * sin(c) * x +
(sin(a) * sin(b) * sin(c) + cos(a) * cos(c)) * y +
(cos(a) * sin(b) * sin(c) - sin(a) * cos(c)) * z)
rz = ((-sin(b)) * x +
(sin(a) * cos(b)) * y +
(cos(a) * cos(b)) * z)
return rx, ry, rz
预计: 向右上方看时,相机应先沿 x 轴旋转,然后沿 y 轴旋转
我必须使用欧拉公式之外的另一种旋转方法。