假設旋轉使用下面代碼:

問題:
繞X軸旋轉yaw角度后,再繞Y軸旋轉pitch角度。但是發現繞X軸旋轉之后,其實Y軸也已經改變了,不再是初始的時候平行于螢屏的Y軸,現在Y軸應該是垂直于XoZ平面,也就是說和螢屏有個角度。
但我想要的結果是繞X旋轉之后,Y軸 ,Z軸都會傾斜,三個軸都是原來的狀態,然后再繞Y軸旋轉。請問這樣要怎么實作
uj5u.com熱心網友回復:
http://blog.csdn.net/pizi0475uj5u.com熱心網友回復:
這個難道不能直接傳個旋轉軸進去,省的你一個一個算uj5u.com熱心網友回復:
D3DXVECTOR3 vX(1,0,0);
D3DXVECTOR3 vY(0,1,0);
D3DXVECTOR3 vZ(0,0,1);
D3DXMATRIX matX,matY,matZ;
D3DXMatrixRotationAxis(&matX,&vX,yaw);
D3DXMatrixRotationAxis(&matY,&vY,pitch);
D3DXMatrixRotationAxis(&matZ,&vZ,0);
D3DXMATRIX matWorld;
D3DXMatrixMultiply(&matWorld, &matX, &matY);
D3DXMatrixMultiply(&matWorld, &matWorld, &matZ);
這樣?
uj5u.com熱心網友回復:
先繞Y旋轉再繞X旋轉,也就是獲取XYZ3個軸的旋轉矩陣之后這樣乘RotationY*RotationX*RotationZ,這是FPS/FreeCamera的基本特性
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/59507.html
標籤:圖形處理/算法
上一篇:請教個d3d的問題
