自定义旋转功能看角落时的滚动效果

问题描述 投票:0回答:1

当我在游戏中向上看时,相机沿 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 轴旋转

python math 3d rotation trigonometry
1个回答
-1
投票

我必须使用欧拉公式之外的另一种旋转方法。

© www.soinside.com 2019 - 2024. All rights reserved.