|
有
D3DXVECTOR3 m_vRight;
D3DXVECTOR3 m_vUp;
D3DXVECTOR3 m_vLook;
D3DXVECTOR3 m_vPos;
来描述摄像机的信息。
有六种可以操作:
//沿向量right方向的扫视,即是X轴方向
void Strafe(float units);
//沿向量up方向的升降,即是Y轴方向
void Fly(float units);
//沿向量look方向滚动,即是Z轴方向
void Walk(float units);
//俯仰,绕摄像机的right向量旋转
void Pitch(float angle);
//偏航,绕摄像机的up向量旋转
void Yaw(float angle);
//滚动,张摄像机的look向量旋转
void Roll(float angle);
void Camera::Yaw( float angle )
{
D3DXMATRIX T;
D3DXMatrixRotationAxis(&T,&m_vUp,angle);
D3DXVec3TransformCoord(&m_vRight,&m_vRight,&T);
D3DXVec3TransformCoord(&m_vLook,&m_vLook,&T);
}
这是yaw的实现。
但是他是绕着自身旋转的。我想让摄像机按我指定的位置的旋转。
请问怎么做。请大虾指点。
|
|