在3d空间中移动一个点

时间:2009-10-07 11:21:41

标签: c++ math opengl coordinates

我有点0,0,0 我围绕Y轴旋转30度,然后围绕X轴旋转30度。 然后我想向前移动10个单位。

我知道如何计算新的X和Y位置

MovementX = cos(angle) * MoveDistance;
MovementY = sin(angle) * MoveDistance;

但后来我意识到这些值会因为Z而改变,不会吗?

我如何计算Z并且我正确地计算出X和Y?

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该将点坐标乘以完整旋转矩阵,即matRotationTotal = matRotationX * matRotationY * matRotationZ。查看this文章了解详情。