我在 0,0,0 有一个点,我将点绕 Y 轴旋转 30 度,然后绕 X 轴旋转 30 度。然后我想将点向前移动 10 个单位。
我知道如何计算出新的 X 和 Y 位置
MovementX = cos(angle) * MoveDistance;
MovementY = sin(angle) * MoveDistance;
但后来我意识到这些值会因为 Z 而改变,不是吗?
我如何计算出 Z 并正确计算出 X 和 Y?
谢谢!
我在 0,0,0 有一个点,我将点绕 Y 轴旋转 30 度,然后绕 X 轴旋转 30 度。然后我想将点向前移动 10 个单位。
我知道如何计算出新的 X 和 Y 位置
MovementX = cos(angle) * MoveDistance;
MovementY = sin(angle) * MoveDistance;
但后来我意识到这些值会因为 Z 而改变,不是吗?
我如何计算出 Z 并正确计算出 X 和 Y?
谢谢!
您应该将点坐标乘以完整的旋转矩阵,即matRotationTotal = matRotationX * matRotationY * matRotationZ
. 查看这篇文章了解详情。