?? camera.cpp
字號:
#include <d3d9.h>
#include <d3dx9.h>
#include "Camera.h"
// 構造函數
Camera::Camera()
{
D3DXVECTOR3 eye(-350.0f,450.0f,0.0f);
D3DXVECTOR3 lookat(0.0f,0.0f,0.0f);
D3DXVECTOR3 up(0.0f,1.0f,0.0f);
D3DXMatrixIdentity( &m_matView );
SetView( &eye, &lookat, &up );
}
///設置矩陣.
D3DXMATRIXA16* Camera::SetView( D3DXVECTOR3* pvEye,D3DXVECTOR3* pvLookat,D3DXVECTOR3* pvUp)
{
m_vEye = *pvEye;
m_vLookat = *pvLookat;
m_vUp = *pvUp;
D3DXVec3Normalize( &m_vView, &( m_vLookat - m_vEye ) );
D3DXVec3Cross( &m_vCross, &m_vUp, &m_vView );
D3DXMatrixLookAtLH( &m_matView, &m_vEye, &m_vLookat, &m_vUp);
return &m_matView;
}
D3DXMATRIXA16* Camera::RotateLocalX( float angle )
{
D3DXMATRIXA16 matRot;
D3DXMatrixRotationAxis( &matRot, &m_vCross, angle );
D3DXVECTOR3 vNewDst;
D3DXVec3TransformCoord( &vNewDst, &(m_vEye-m_vLookat), &matRot );
vNewDst += m_vLookat;
return SetView( &vNewDst, &m_vLookat, &m_vUp );
}
D3DXMATRIXA16* Camera::RotateLocalY( float angle )
{
D3DXMATRIXA16 matRot;
D3DXMatrixRotationAxis( &matRot, &m_vUp, angle );
D3DXVECTOR3 vNewDst;
D3DXVec3TransformCoord( &vNewDst, &(m_vEye-m_vLookat), &matRot );
vNewDst += m_vLookat;
return SetView( &vNewDst, &m_vLookat, &m_vUp );
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -