第1章directx编程第章directx编程第1章directx编程第1章directx编程.ppt

第1章directx编程第章directx编程第1章directx编程第1章directx编程.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章directx编程第章directx编程第1章directx编程第1章directx编程

第1章 基本的数学概念 主要目标: 向量几何和向量代数的基本知识以及它们在三维计算机图形学中的应用。 矩阵和矩阵运算以及如何利用矩阵进行三维几何变换。 如何建立点线代数模型以及如何在三维图形设计中使用它们。 熟悉D3DX中提供的数学类和函数,并用它们来完成三维数学运算。 1.1 三维空间中的向量 向量 表示:带箭头的直线段。 属性:长度(也称为数量或者标量) 方向 1.1 三维空间中的向量 图1.3是将图1.1中的向量移动到标准位置的结果。 两个向量相等? 4个特殊的向量(图1.4)。 零向量:0=(0,0,0) 标准基向量: i=(1,0,0) j=(0,1,0) k=(0,0,1) 1.1 三维空间中的向量 在D3DX库中,使用D3DXVECTOR3类来代表三维向量,定义如下(P6): typedef struct D3DXVECTOR3:public D3DVECTOR{ //构造函数和运算符重载定义 }D3DXVECTOR3,*LPD3DXVECTOR3; 其中: typedef struct _D3DVECTOR { float x; float y; float z; } D3DVECTOR; 1.1.1 向量的相等 向量相等 几何上:两个向量方向和长度都相同。 代数上:相同的维数并且它们拥有相等的分量。 (n-D向量,n=2,3, ‥) 在代码中,可以通过重载“==”运算符来检测两个向量是否相等: D3DXVECTOR u(1.0f, 0.0f, 1.0f); D3DXVECTOR v(0.0f, 1.0f, 0.0f); if(u == v) return true; 比较浮点数时的特别注意! 1.1.2 向量模的计算 向量的模 几何上,就是一个有向线段的长度。如果知道了向量的所有属性,向量模的计算: 在D3DX库中,可以使用如下函数计算向量的模: FLOAT D3DXVec3Length( // 返回值为向量的模 CONST D3DXVECTOR3 *pV // 所要计算的D3DXVECTOR3类型的向量 ); D3DXVECTOR3 v(1.0f, 2.0f, 3.0f); float magnitude = D3DXVec3Length(v); // 计算向量的模 1.1.3 向量归一化 单位向量 模为1的向量 归一化向量 将一般向量转换为单位向量。 D3DX库中,可以使用如下函数进行向量的归一化: D3DXVECTOR3* D3DXVec3Normalize( D3DXVECTOR3 *pOut, // Result CONST D3DXVECTOR3 *pV // The vector to normalize ); 1.1.4 向量加法 将两个向量的分量分别相加。 图1.5是向量加法的几何表示。 在程序中进行加法运算时,可以进行“+”运算符的重载: D3DXVECTOR3 u(2.0f, 0.0f, 1.0f); D3DXVECTOR3 v(0.0f, -1.0f, 5.0f); D3DXVECTOR3 sum = u + v; // = (2.0f, -1.0f, 6.0f) 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) 1.1.6 数乘 将向量和一个标量相乘,使向量的数量大小发生改变。结果向量不改变方向,除非是与一个负标量相乘,那么就会使原向量的方向翻转: ku = (kux, kuy, kuz) 在D3DXVECTOR3类中提供了“*”运算符: D3DXVECTOR3 u(1.0f, 1.0f, -1.0f); D3DXVECTOR3 scaledVec = u * 10.0f;

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档