三维物体旋转的问题
我用键盘驱动m_RotatePitch、m_RotateYaw、m_RotateRoll这三个变量,以实现控制飞机在三维场景中绕自身轴旋转的目地。单独对三个轴向的旋转控制是没有问题的。但是,只要有一个轴向上发生了旋转,只要有一个轴向上发生了旋转,再对其他轴向旋转就会出现旋转轴不是物体自身轴向的状况。请问,是怎么回事呢?,相关代码如下:
D3DXMatrixRotationX(&matRotateX, m_RotatePitch); //俯仰角
D3DXMatrixRotationY(&matRotateY, m_RotateYaw); //偏航角
D3DXMatrixRotationZ(&matRotateZ, m_RotateRoll); //滚转角
...
D3DXMatrixMultiply(&matShip, &matRotateX, &matRotateY);
D3DXMatrixMultiply(&matShip, &matShip, &matRotateZ);
m_pD3DDevice->SetTransform(D3DTS_WORLD, &matShip);