




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 第1章 基本的数学概念 主要目标: 向量几何和向量代数的基本知识以及它们在三维 计算机图形学中的应用。 矩阵和矩阵运算以及如何利用矩阵进行三维几何 变换。 如何建立点线代数模型以及如何在三维图形设计 中使用它们。 熟悉D3DX中提供的数学类和函数,并用它们来完 成三维数学运算。 3 1.1 三维空间中的向量 使用带箭头的直线段来表示向量,如图1.1所示 。用于描述向量的两个属性是长度(也称为数量 或者标量)和方向。 在图1.2中描述了一个左手坐标系和一个右手坐 标系。 4 1.1 三维空间中的向量 图1.3显示的是将图1.1中的向 量移动到标准位置的结果,在 标准位置下指定坐标系中的向 量,这时候注意向量u和v重合 在一起,只是因为这两个向量 相等。 在三维向量中有4个特殊的向 量(如图1.4所示)。 在D3DX库中,可以使用 D3DXVECTOR3类来代表三维 向量,在D3DX中该类的定义 如下: 参见教材P5 5 1.1.1 向量的相等 几何上,如果两个向量方向和长度都相同,那 么这两个向量就相等。在代数上,我们说如果 它们拥有相同的维数并且它们拥有相等的分量 ,那么它们相等。 在代码中,可以通过重载“=”运算符来检测两 个向量是否相等: D3DXVECTOR u(1.0f, 0.0f, 1.0f); D3DXVECTOR v(0.0f, 1.0f, 0.0f); if(u = v) return true; 6 1.1.2 向量模的计算 几何上,向量的模就是一个有向线段的长度。如果知 道了向量的所有属性,就可以通过如下的方法来进行 向量模的计算: 在D3DX库中,可以使用如下函数计算向量的模: FLOAT D3DXVec3Length( / 返回值为向量的 模 CONST D3DXVECTOR3 *pV / 所要计算的 D3DXVECTOR3类型的向量 ); D3DXVECTOR3 v(1.0f, 2.0f, 3.0f); float magnitude = D3DXVec3Length( / 计算向量的 模 7 1.1.3 向量归一化 单位向量指模为1的向量,归一化向量就是指将一般 向量转换为单位向量。可以通过将向量的所有分量除 以向量的模来得到单位向量,如下所示: 通过D3DX库,可以使用如下函数进行向量的归一化 : D3DXVECTOR3* D3DXVec3Normalize( D3DXVECTOR3 *pOut, / Result CONST D3DXVECTOR3 *pV / The vector to normalize ); 8 1.1.4 向量加法 可以通过将两个向量的分量分别 相加来进行向量加法的计算。 图1.5是向量加法的几何表示。 在程序中进行加法运算时,可以 进行“+”运算符的重载: D3DXVECTOR3 u(2.0f, 0.0f, 1.0f); D3DXVECTOR3 v(0.0f, -1.0f, 5.0f); / (2.0 + 0.0, 0.0 + (- 1.0), 1.0 + 5.0) D3DXVECTOR3 sum = u + v; / = (2.0f, -1.0f, 6.0f) 9 1.1.5 向量减法 与加法类似,向量的减法也是通过 对向量的所有分量进行减法运算。 如图1.6所示为向量减法的几何表示 。 同样在D3D中通过重载“-”运算符进 行向量减法: D3DXVECTOR3 u(2.0f, 0.0f, 1.0f); D3DXVECTOR3 v(0.0f, -1.0f, 5.0f); D3DXVECTOR3 difference = u - v; / = (2.0f, 1.0f, -4.0f) 10 1.1.6 数乘 可以将向量和一个标量相乘,就像名字所说明 的那样,使向量的数量大小发生改变。这个运 算得到的向量将不会改变向量的方向,除非是 与一个负标量相乘,那么就会使原向量的方向 翻转: ku = (kux, kuy, kuz) 在D3DXVECTOR3类中提供了“*”运算符: D3DXVECTOR3 u(1.0f, 1.0f, -1.0f); D3DXVECTOR3 scaledVec = u * 10.0f; / = (10.0f, 10.0f, -10.0f) 11 1.1.7 点乘 点乘是向量在代数学上定义的两种算法之一, 它通过如下的方法计算: 点乘运算的主要属性如下: 如果=0,那么向量之间的夹角等于0度。 如果0,那么向量之间的夹角小于90度。 如果0,则点p在平面上的外侧。 如果np+d0,则点p在平面上的内侧。 D3DX中的如下函数等价于np+d,用于求 出一个指定的平面和点之间的距离: 参见教材P27 36 1.3.3 构建平面 37 1.3.3 构建平面 在D3DX中提供了如下的函数,通过给出3个不 同点来计算一个平面: D3DXPLANE* D3DXPlaneFromPoints( D3DXPLANE *pOut, / Result CONST D3DXVECTOR3 *pV1, / Point 1 on the plane CONST D3DXVECTOR3 *pV2, / Point 2 on the plane CONST D3DXVECTOR3 *pV3 / Point 3 on the plane ); 38 1.3.4 标准化一个平面 可以使用如下的公式来标准化平面(n, d): 在D3DX中可以使用如下的函数来标准化一个 平面的法线向量: D3DXPLANE* D3DXPlaneNormalize( D3DXPLANE *pOut, / Resulting normalized plane CONST D3DXPLANE *pP / Input plane ); 39 1.3.5 对平面进行变换操作 把它看成一个四维向量,用所需要的变换矩阵 的逆转置矩阵来对它进行操作。注意,这 个平面的法线要先被标准化。 使用下面的函数: D3DXPLANE* D3DXPlaneTransform( D3DXPLANE *pOut, / Result CONST D3DXPLANE *pP, / Input plane CONST D3DXMATRIX *pM / Transformation matrix ); 40 1.3.5 对平面进行变换操作 实例代码如下: D3DXMATRIX T(.); / Init. T to a desired transformation D3DXMATRIX inverseOfT; D3DXMATRIX inverseTransposeOfT; D3DXMatrixInverse( D3DXMatrixTranspose( D3DXPLANE p(.); / Init. Plane. D3DXPlaneNormalize( / make sure normal is normalized D3DXPlaneTransform( 41 1.3.6 求到一个指定点距离最短的平面上的点 假设在空间中有一个点p并 且希望找出在平面(n, d)上 的一个离p点最近的点q。 图1.13 k是p到平面上最短 的距离 在平面(n, p)上距离点p最 近的是点q。可以发现点p 到平面的距离是正的,但 是如果点p在平面的另一面 ,那么p将会是负的。 42 1.4 射 线 设想在游戏中一个玩家正在向一个敌人开火, 通过什么方法来判断从一个指定的位置和方向 射出后的子弹是否能击中目标呢? 一个解决方案就是使用一个射线对子弹建模,并 对敌人建立一个包围盒,它和一个物体紧密地绑 定在一起,因此近似为它的体积。包围盒将在第 11章中重点讲述,然后通过数学计算,我们可以 判断射线是否击中了包围盒并且能知道击中了哪 个地方,在这一节中,我们学习怎样在数学上对 一条射线建模。 43 1.4.1 射线的表达式 一条射线可以通过一个原 点p0和一个方向u进行描述 (见图1.14),我们可以通过 增加参量t或者设置为0来生 成一条射线上的点,一个 射线的表达式是: 44 1.4.2 射线与平面的相交 如果给定一条射线p(t) = p0 + tu和一个平面 np + d = 0,想知道射线是否和平面相交,如 果相交的话,两者相交于哪一点。要达到这些 目的,可以将射线方程代入到平面方程中来求 参数t,如果存在满足方程式要求的参数t,那 么将可以得出处于平面上的点。 45 1.5 小 结 在物理学中,向量还被用于处理数量和方向相关的数 学问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业银行金融科技人才普惠金融能力培养策略报告2025
- 2025年公众参与视角下环境影响评价公众满意度调查报告
- 电梯委托监督检验协议书
- 江苏国际货运代理协议书
- 珠宝厂出租转让合同范本
- 电梯井道施工安全协议书
- 防火隔热服采购合同范本
- 混凝土合同三方协议模板
- 领取小区大门钥匙协议书
- 私人仓库房屋租赁协议书
- 仁爱版英语九年级上下册单词(含音标)
- 人教版(2024)第三单元-汉语拼音《yw》教学课件
- 初中语文九级上册第三单元大单元整体教学设计 人教版
- 2024年便携式储能行业分析报告
- 2023年全国职业院校技能大赛-中药传统技能赛项规程
- 滦州事业单位笔试真题及答案2024
- 了解DSA-200型受电弓结构及作用讲解
- 煤矿开掘技术操作规程
- 《光伏组件功率衰减检验技术规范(征求意见稿)》
- 威图电柜空调SK3304500使用说书
- 客运驾驶员汛期安全培训
评论
0/150
提交评论