我在 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
。检查this文章了解详情。
关于c++ - 在 3d 空间中移动一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1531023/