3Dゲーム関連
3Dゲーム制作関連の書籍を読むと内積の計算が出てきます。
使用例)
D3DXVECTOR3(0.0f, 0.0f, 1.0f);
ベクトルの生成。パラメータで指定されたx,y,zに基づいたベクトルを生成する。
ベクトル同士の演算は普通に可能です。
使用例)
D3DXVECTOR3(1.0f, 2.0f, 3.0f) + D3DXVECTOR3(4.0f, 5.0f, 6.0f);
使用例)
D3DXMatrixIdentity(&matWorld);
D3DXVECTOR3 vecCamera(0.0f,0.0f,-50.0f); //カメラ座標
D3DXVECTOR3 vecDir(0.0f,0.0f,0.0f); //カメラの見ている方向
D3DXMATRIX matWorld; //ワールド座標のマトリックス
D3DXMATRIX matProj; //カメラの投影座標のマトリックス
D3DXMATRIX matView; //カメラ座標のマトリックス
D3DXVECTOR3 vecAt = D3DXVECTOR3(0.0f, 0.0f, 1.0f) + vecCamera; //カメラの位置から常に奥の位置を見ている
D3DXMatrixLookAtLH(&matView, &vecCamera, &vecAt, &D3DXVECTOR3(0,1,0));
D3DVIEWPORT9 vp;
D3DXVECTOR3 vecMouse
POINT pt;
pDevice->GetViewport(&vp);
GetCursorPos(&pt);
D3DXVec3Unproject(&vecMouse, &D3DXVECTOR3((float)pt.x, (float)pt.y, 0), &vp, &matProj, &matView, &matWorld);
ecDir.x -= D3DXToRadian(1.0f);
ecDir.y += D3DXToRadian(1.0f);
D3DXMatrixRotationYawPitchRoll(&mat, vecDir.y, vecDir.x, 0.0f);