目的:指导别人使用矩阵

目的:指导别人使用矩阵

ID:46540872

大小:67.50 KB

页数:4页

时间:2019-11-25

目的:指导别人使用矩阵_第1页
目的:指导别人使用矩阵_第2页
目的:指导别人使用矩阵_第3页
目的:指导别人使用矩阵_第4页
资源描述:

《目的:指导别人使用矩阵》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、H的:指导别人使用矩阵任务:编写教程,编写代码阅读对象:d3d入门者,c/c卄熟练,windows编程熟练,VCIDE熟练描述:矩阵在3d游戏当中担当着十分重要的角色。虽然在某些方團不如四元数(quaternion)但是我们不得不承认矩阵是计算机图形学的基础。下面我们就來学习一下这个东东矩阵的概念Whatarematricesandhowdotheywork?(矩阵是什么和它们怎样工作)矩阵其实是一个高级的数学主题(参看线性代数),所以,在此我只能尽力地、简要地概括一下。矩阵就像是一个表格,有一定数EI的行与列;每个格了屮都一个数字或表达式。通过特定的矩阵

2、,我们可以对3D对象中的顶点处标进行运算,来实现类似移动、旋转、缩放这样的操作。在DirectX中,矩阵就是4X4的数表。下而的这幅图是一个矩阵的例子,这个矩阵能使一个对象(由它的所有顶点)缩放到原來的五倍。5000050000500001那么我们用它来作甚么啊?其实很简单我们仅仅用它来做变换。首先,给出一个点a(x,y,z),它是相对于我们想象空间点o(0,0,0)的,如果相对原点改变为(1,0,0)怎么半啊?那么a点变成(x-1,y,z).这么说吧,其实说白了矩阵就是将一个位置的点通过变换矩阵移动到另一个位置(这样才能产生动画啊!)。你不用把矩阵看的很

3、神秘,你就把它当成一个可以让你随心所欲的变换位置的工具。基木的矩阵操作函数有以下儿种:1.D3DXMatrixRotationX(D3DXMATRIX*out,FLOATAngle);//围绕x轴转动2.D3DXMatrixRotationY(D3DXMATRIX*out,FLOATAngle);//围绕y轴转动3.D3DXMatrixRotationZ(D3DXMATRIX*out,FLOATAngle);//围绕z轴转动4.D3DXMatrixRotationYawPitchRoll(D3DXMATRIX*out,FLOATx,FLOATy,FLOAT

4、z)//在xyz方向上偏移x,y,z大小5.D3DXMatrixScaling(D3DXMATRIX*out,FLOATx,FLOATy,FLOATz)//缩放比例6.D3DXMatrixShadow(D3DXMATRlX*out,D3DXVECT0R4*pLight,D3DXPLANE*pPlane)//平面投影矩阵7.D3DXMatrixTrans1ation()//建立移动矩阵8.D3DXMatrixTransformation(D3DXMATRlX*pOut,D3DXVECT0R3*pScalingCenter,D3DXQUATERNI0N*pSc

5、alingRotation,D3DXVECT0R3*pScaling,D3DXVECT0R3*pRotationCenter,D3DXQUATERNION*pRotation,D3DXVECTOR3*pTranslation);这个函数我要给大家仔细的讲一下(竖起耳朵听啊〔八)第一个参数:D3DXMATRTX*pOut返回的转换炬阵第二个参数:D3DXVECTOR3*pScalingCenter缩放的原点第三个参数:D3DXQUATERNI0N*pScalingRotation这是个四元素(什么?什么是四元索?看来这个函数介绍要花点时间了。D3DXQUAT

6、ERNT0N这个结构有四个内容x,y,z,w其屮xyz表示一个向量,w则表示一个旋转度,该结构表示的是围<xyz向量旋转w)第四个参数:D3DXVECTOR3*pScaling缩放向量(同上曲两个参数联系起來那就是在pScalingCenter原点,pScalingJj向上缩放IpScalingl大小,或旋转pScalingRotation)第五个参数:旋转圆点第六个参数:旋转的四元素第七个参数:旋转向量当得到你想要的转换矩阵之厉,你就町以用TD3DXEffectStateManager::SetTransform()來设置你要操作的对象了,参数说明:D3

7、DTRANSFORMSTATETYPEState,转换的类型,一般是D3DTS_VTEW(视点转换),D3DTS_PR0JECTI0N(项目转换)等D3DMATRIX^Matrix转换矩阵现在來看看代码吧其他部分都一样,有两个地方需要解释一个是在setup()方法屮,另一个是在Display()方法中D3DXVECT0R3position(0.Of,0.Of,-5.Of);//D3DXVECTOR3target(0.Of,0.Of,0.Of);D3DXVECT0R3up(0.Of,1.Of,0.Of);//以上我们定义了三个向量,这三个向量是用來建立左手观

8、察矩阵的D3DXMATRTXV;D3DXMatrixLookAtL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。