posts - 25,  comments - 21,  trackbacks - 0
d3dx矩阵旋转
1:绕x轴旋转,y轴正向为0度,延x轴看向原点,顺时针旋转角度增加;
2:绕y轴旋转,x轴正向为0度,延y轴看向原点,顺时针旋转角度增加,也就是,vec[1,0,0],这样转30度后,变成vec[0.866,0,0.5];
3:绕z轴旋转,x轴正向为0度,延z轴看向原点,顺时针旋转角度增加,也就是,vec[1,0,0],这样转30度后,变成vec[0.866,0.5,0];
以上结论,都是傻子做法,用下面几个例子看出来的:
D3DXMATRIXA16 matRot0,matRot1,matRot2;
D3DXMatrixRotationX(&matRot0,D3DX_PI/6.0f);
D3DXMatrixRotationY(&matRot1,D3DX_PI/6.0f);
D3DXMatrixRotationZ(&matRot2,D3DX_PI/6.0f);

//下面链接是讲这个旋转的,不过它的矩阵是row-major矩阵,所以他说RxRyRz,performs the roll first, then the pitch, and finally the yaw,而我们用d3dx,是column-major
http://planning.cs.uiuc.edu/node102.html

注意一点,旋转是三个方向的结合,roll,pitch,yaw,其先后顺序不一样,结论完全不一样,没有对错之分,只看你应用的需要,一般游戏中操作相机时roll很少,只是yaw,pitch,而且通常,只有一个成分在作用。。。。

posted on 2008-09-21 11:32 Sherk 阅读(5977) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(3)

随笔档案

相册

好友

搜索

  •  

最新评论

阅读排行榜

评论排行榜