




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机图形学必备的数学知识⽂章⽬录1、3D空间中的向量向量的起点不重要讨论vector时可独⽴于具体的坐标系,即与具体坐标系⽆关计算机图形学中的坐标系和数学中的坐标系不太⼀样:左⼿坐标系和右⼿坐标系UE4中使⽤左⼿坐标系当某⼀向量的起始端与坐标原点重合时,称该向量处于标准位置对于处于标准位置的向量,我们可⽤向量的终点坐标来描该向量。⽤于描述向量的坐标称为分量(component)注意区分点和向量四个特殊的3D向量:1、零向量(zero:vecotr)2、3D空间的标准基向量:长度为1的向量称为单位向量(unitvector)在3D图形学中会使⽤2D、3D和4D向量。D3DX库提供了类D3DXVECTOR2和D3DXVECTOR4分别⽤于表⽰2D和4D向量维数不同的向量都具有相同的属性,即长度和⽅向,只是维数不同。此外,向量的数学运算除了crossproduct外都可以推⼴⾄任意维数的向量,crossproduct只在3D空间中有定义1.1、向量相等可以直接使⽤类中的已重载的⽐较运算符来进⾏⽐较操作。该⽐较运算符已经处理好了浮点值⽐较所存在的问题1.2、计算向量的长度使⽤下⾯这个函数来计算向量的模FLOATD3DXVec3Length(CONSTD3DXVECTOR3*pV);1.3、向量的规范化向量的规范化(normalizing)就是使向量的模变为1使⽤下⾯的函数对向量进⾏规范化D3DXVECTOR3*D3DXVec3Normalize(D3DXVECTOR3*pOut,CONSTD3DXVECTOR3*pV);在⼤部分情况下,除⾮特别声明,⼀个D3DX数学函数均返回⼀个指向结果的指针1.4、向量加法使⽤重载后的加法运算符1.5、向量减法使⽤重载后的减法运算符1.6、数乘使⽤重载后的数乘运算符1.7、点积点积(dotproduct)就是向量的对应分量相乘后相加,也可以表⽰为两个向量的模和夹⾓余弦值的乘积正交(orthogonal)(perpendicular),垂直1.8、叉积两个向量叉积(crossproduct)的结果还是⼀个向量叉积不具备交换性;交换后,结果反向。对于向量的叉积运算,使⽤什么坐标系,就⽤哪⼀个⼿来判断结果向量的⽅向2、矩阵有时⼀个矩阵仅包含单⾏或单列。这样的矩阵称为⾏向量或列向量2.1、矩阵相等、矩阵数乘和矩阵加法如你所想2.2、矩阵乘法矩阵乘法是矩阵在3D图形学中最重要的运算。借助矩阵乘法,我们能够对向量实施变换,也可将⼏个变换进⾏组合为了计算矩阵乘积AB,矩阵A的列数必须等于矩阵B的⾏数矩阵乘法⼀般不具有交换性2.3、单位矩阵的特点是除了主对⾓线上元素为1外,其余元素均为0,⽽且是单位矩阵(IdentityMatrix)⽅阵(squarematrix)单位矩阵对于标量可认为是矩阵中的12.4、逆矩阵:逆矩阵(inversematrix)1、只有⽅阵才可能有逆矩阵2、并⾮所有的⽅阵都有逆矩阵3、⼀个矩阵与其逆矩阵的乘积为单位阵。当⼀个矩阵与其单位阵相乘时,可交换相乘次序逆矩阵在求矩阵⽅程中的其他矩阵时⾮常有⽤(AB)−1=B−1A−1,该性质的前提时,矩阵A和B均可逆,且均为维数相同的⽅阵2.5、矩阵的转置矩阵的转置(transpose)可通过交换矩阵的⾏和列来实现2.6、D3DX矩阵编写Direct3D应⽤程序时,我们通常只使⽤4x4的矩阵和1x4:的⾏向量1、向量-矩阵2、矩阵-矩阵乘法乘法:矩阵乘法不具有交换性对于矩阵,可使⽤括号运算符(parenthesis来访问operator)矩阵中的每⼀个元素,索引从零开始,使⽤圆括号//基础矩阵typedefstructD3DMATRIX{union{struct{float11,12,13,14;float21,22,23,24;float31,32,33,34;float41,42,43,44;};floatm[4][4];};}D3DMATRIX;关于Union的⽤法已忘记单位矩阵、取转置以及求逆都有相应的Direct3D函数来实现3、基本变换在3D图形学中,⽤向量-矩阵乘法来实现各种变换使⽤Direct3D编程时,我们使⽤4x4的矩阵表⽰⼀个变换我们之所以使⽤4x4矩阵是因为这种特定维数的矩阵有能⼒表征我们所需要的所有变换3x3矩阵⽆法描述平移(translation)、(perspective)以及(reflection,对称变换或镜像变换)透视投影反射为了使向量-矩阵乘积有意义,我们必须将3D的点或向量扩展为⾏向量,因为1x3的⾏向量和⼀个4x4的矩阵是⽆法定义乘法运算的4D为了保证点的平移变换能够正确进⾏,在将点放⼊1x4的⾏向量时,我们将w分量设为1;为了防⽌对向量进⾏平移变换,在我们将向量1x4的⾏向量时,将w分量置为0放⼊扩展后的4D向量称为齐次(homogenous)向量如果经过变换后的向量的w分量不为0也不为1,则称该向量处于齐次空间(homogenous中,以space)区别于3D空间将处于齐次空间中的向量映射回3D空间的⽅法是:⽤w分量去除该齐次向量的每⼀个分量进⾏3D图形编程时,如果涉及到透视投影,则经常需要将向量由齐次空间映射到3D空间p203.1、平移矩阵Translationmatrix要想对点(x,y,z,1):)分别沿坐标轴平移px、py、p个单位,则只需要将该向量与下⾯的平移矩阵相乘即可(p为平移向量z⎡⎤1000⎢⎥⎢⎥0100⎣⎦0010pxpypz1T(p)=⽤于创建平移矩阵的D3DX函数为:D3DXMATRIX*D3DXMatrixTranslation(D3DXMATRIX*pOut,FLOAT,FLOAT,xyFLOATz);平移矩阵的逆矩阵为(将平移向量取负⎡即可):⎤10001000100⎢⎥⎢⎥00⎣⎦00−p−py−p11xzT−1=T(−p)=3.2、旋转矩阵Rotationmatrix⽅向:当沿着旋转轴指向原点的⽅向观察时,⾓度是按顺时针⽅向度量的θ绕x轴旋转⎡度时,所需要的旋转矩阵:⎤1000⎢⎥0cosθsinθ0⎢⎥θcosθ0⎣⎦0−sinX(θ)=0001⽤于创建绕x轴旋转的旋转矩阵的D3DX函数为:D3DXMATRIX*D3DXMatrixRotationX(D3DXMATRIX*pOut,FLOATAngle);θ绕y轴旋转⎡cos度时,所需要的旋θ0−sinθ转矩阵:0⎤⎢⎥⎥⎢0100⎣θ0cosθ0⎦sinY(θ)=0001⽤于创建绕y轴旋转的旋转矩阵的D3DX函数为:D3DXMATRIX*D3DXMatrixRotationY(D3DXMATRIX*pOut,FLOATAngle);θ绕z轴旋转⎡度时,所需要的旋sinθ0转矩阵:0⎤cosθ⎢⎥−sinθcosθ00⎥⎦⎢⎣001001Z(θ)=00⽤于创建绕z轴旋转的旋转矩阵的D3DX函数为:D3DXMATRIX*D3DXMatrixRotationZ(D3DXMATRIX*pOut,FLOATAngle);旋转矩阵R的逆矩阵与其转置相等,具备这样特点的矩阵称为正交矩阵3.3、⽐例变换矩阵ScalingMatrix让⼀个向量沿x、y、z轴分别放⼤qx、qy和qz倍,⽐例变换矩阵如下:⎤⎡000q⎢⎥x⎢⎥000qy⎣⎦000qz0001S(q)=⽤于创建⽐例矩阵的D3DX函数为:D3DXMATRIX*D3DXMatrixScaling(D3DXMATRIX*pOut,FLOAT,sxFLOAT,syFLOATsz)如果将⽐例矩阵的各个缩放因⼦取倒数,就得到该矩阵的逆矩阵3.4、⼏何变换的组合矩阵的⼀个最关键的优点是:可借助矩阵乘法将⼏种变换组合为⼀个变换矩阵。各变换矩阵相乘的次序应与实施变换的次序相同矩阵的这种整合多种变换的能⼒对于性能的提⾼颇有意义3.5、向量变换的⼀些函数1、对点进⾏变换的D3DX函数,假定向量的w分量为1:D3DXVECTOR3*D3DXVec3TransformCoord(D3DXVECTOR3*pOut,CONSTD3DXVECTOR3CONSTD3DXVECTOR3*pM*pV,);2、对向量进⾏变换的D3DX函数,假定向量的w分量为0:D3DXVECTOR3*D3DXVec3TransformNormal(D3DXVECTOR3*pOut,CONSTD3DXVECTOR3*pV,CONSTD3DXVECTOR3*pM);D3DX库还提供了函数D3DXVec3TransformCoorArray和D3DXVec3TransformNormalArray,分别⽤于和点数组的变换向量数组4、平⾯法向量(normalvector)n⋅(p−p0)=0n⋅p−n⋅p=00n⋅p+d=0,d=−n⋅p0如果平⾯法向量的模为1,则d给出了坐标原点到该平⾯最短的有符号距离(signed;distance)当点p不在该平⾯上时,如果平⾯法向量的模为1,则n⋅p+d给出了该平⾯到点p的最短的有符号距离(signeddistance)4.1、D3DXPLANE在代码中表⽰平⾯时,仅存储法向量n和常量d已经⾜够了。将平⾯看成⼀个4D向量⾮常有⽤,可记为(n,d)给定⼀个平⾯和⼀个点,D3DX库中⽤来计算n⋅p+d的函数://还有⼀些其他的函数FLOATD3DXPlaneDotCoord(CONSTD3DXPLANE*pP,CONSTD3DXVECTOR3*pV);4.2、点和平⾯的空间关系1、点在平⾯上:2、点在平⾯的前⽅:3、点在平⾯的后⽅:4.3、平⾯的创建⽤到时再详细研究⼀共有三种创建平⾯的⽅法:1、直接指定法向量和有向距离2、⽤平⾯上⼀点和法向量来求取有向距离3、其实⼤同⼩异4.4、平⾯的规范化法向量和d都除
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Lesson 2 What's the temperature in Yantai说课稿-2025-2026学年中职英语第一册人教版(中职三年制)
- 3.3.2 抛物线的简单几何性质第1课时教学设计-2024-2025学年高二上学期数学人教A版(2019)选择性必修第一册
- 7 不甘屈辱奋勇抗争2023-2024学年五年级下册道德与法治同步教学设计(统编版)
- 蔬菜储藏知识培训课件
- 蔬菜保鲜知识培训内容课件
- 2025年中考化学试题分类汇编:工艺流程题(第1期)解析版
- 写作:如何突出中心(说课稿) 七年级语文上册同步备课系列(统编版)
- 2025年天津市河西区中考三模物理试题(解析版)
- 四年级英语下册 Unit 3 At the zoo Part B第一课时说课稿2 人教PEP
- 蒸制食品技术知识培训
- 《儿童癫痫护理指南》课件
- 数学三年级上册二 观察物体1 看一看(一)教学设计
- 2025-2030中国PEM水电解槽行业现状调查与发展前景规划研究研究报告
- 施工阶段全过程造价咨询管理办法
- 新编物业设施设备台账表格模板
- 美术中的秘密课件
- 农村四合院建造施工方案
- 城市轨道交通车辆制动系统维护与检修 课件全套 项目1-5 城轨车辆制动系统概述- NABTESCO型制动控制系统的组成及控制过程
- 《康复评定技术》课件-第十一章 步态分析技术
- 向政府租地申请书
- 《铁路调车工作》课件
评论
0/150
提交评论