《工程数学》课件-第二章:矢量、向量_第1页
《工程数学》课件-第二章:矢量、向量_第2页
《工程数学》课件-第二章:矢量、向量_第3页
《工程数学》课件-第二章:矢量、向量_第4页
《工程数学》课件-第二章:矢量、向量_第5页
已阅读5页,还剩27页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工程数学:3D游戏开发数学基础第二章:矢量、向量1.向量和其他的数学定义什么是向量?核心定义在数学上,向量本质上就是一个数字列表,用于表示有序的数值集合。程序员视角对于开发者而言,向量等同于数组(Array),如C++的std::vector或Java的Vector类。抽象本质定义关注数字本身,而非其背景或实际物理意义,强调数据的有序性。标量vs.向量标量(Scalar)定义:普通数字,只有大小实例:距离、速率、温度举例:速率是“50公里/小时”向量(Vector)定义:数字列表,既有大小也有方向实例:位移、速度、力举例:速度是“向东50公里/小时”1.向量和其他的数学定义向量的维度与表示维度(Dimension)向量中包含的数字数量。本书主要关注2D、3D和4D向量。行向量(RowVector)数字水平排列,例如:[1,2,3]。列向量(ColumnVector)数字垂直排列,通常使用矩阵形式表示。[1,2,3]

1.向量和其他的数学定义向量的分量表示法表示法对比数学文献:常用整数索引,如v₁,v₂本书约定:使用字母索引,更直观对应坐标多维向量表示2D向量:[x,y]3D向量:[x,y,z]4D向量:[x,y,z,w]应用示例若向量a=[1,2],则aₓ=1,aᵧ=2

1.向量和其他的数学定义字体约定与规范标量(Scalar)使用斜体小写字母表示,例如:a,b,x,y向量(Vector)使用粗体小写字母表示,例如:a,b,v,u矩阵(Matrix)使用粗体大写字母表示,例如:A,B,M书写说明

1.向量和其他的数学定义线性代数VS.几何视角线性代数视角向量被视为一个抽象的数字数组,主要用于解决数学方程和数值计算问题,通常不关心其具体的物理几何意义。几何视角向量被看作是有向线段,具有明确的大小和方向,直观地描述物理世界中的位移、速度等物理量。本书重点:几何解释我们将重点学习如何将向量运算与几何意义联系起来,理解每一个数值操作背后对应的空间变换,这是掌握3D图形学的关键。2.矢量的几何定义核心定义在几何学中,矢量是一个有向线段,它包含了空间位置的变化信息。大小(Magnitude)指矢量的长度,代表物理量的量级。方向(Direction)指矢量在空间中指向的方位,通常由箭头指示。图示:矢量的几何表示(箭头长度代表大小,指向代表方向)2.矢量的几何定义矢量的头部与尾部头部(Head)矢量的末端,带有箭头的一端,也称为“终点”。它代表了矢量的方向指向。尾部(Tail)矢量的起始端,也称为“起点”。它是矢量运算中位置的基准点。矢量的核心属性:无位置核心观点:大小与方向决定一切矢量的定义仅包含大小和方向,不包含绝对位置信息。只要这两个属性不变,矢量就是等价的。实例一:位移指令“向前迈出3步”:指令包含大小(3步)和方向(向前),与当前站立位置无关。实例二:速度描述“50km/h向东北”:描述的是速度矢量,无论身在何处,该速度的物理意义不变。2.矢量的几何定义矢量的应用:描述相对位置核心思想矢量可以描述从一个位置到另一个位置的位移,从而精确表示两个物体间的相对位置关系。实例说明例如:“我的房子在你当前位置以东3个街区”。这里的“以东3个街区”就是一个矢量,它描述了从“你当前位置”到“我的房子”的位移。图示:位移矢量示意图(从A点到B点)3.笛卡尔坐标指定矢量矢量的坐标表示核心思想矢量的每个分量代表沿对应坐标轴的有符号位移,这是笛卡尔坐标系的基础。二维矢量(2D)由(x,y)两个分量表示,分别对应沿x轴和y轴的位移量。三维矢量(3D)由(x,y,z)三个分量表示,增加了沿z轴的位移维度。图示:二维坐标系中的矢量及其分量分解3.笛卡尔坐标指定矢量矢量的位移序列解释核心思想:位移的组合一个矢量可以看作是一系列沿坐标轴方向的位移的组合,而不仅仅是一个终点坐标。示例:三维矢量[1,-3,4]沿x轴正方向移动1个单位沿y轴负方向移动3个单位沿z轴正方向移动4个单位图示:三维矢量位移分解过程3.笛卡尔坐标指定矢量位移顺序的无关性核心观点:交换律无论按何种顺序执行沿坐标轴的位移,最终的总位移都是相同的。这体现了矢量加法的交换律。实例验证以矢量[1,-3,4]为例:先沿x轴移动再沿y轴移动,与先沿y轴移动再沿x轴移动,最终到达的位置是完全一致的。3.笛卡尔坐标指定矢量零矢量的定义与特性定义零矢量是所有分量都为零的矢量,记为0。例如,三维零矢量表示为[0,0,0]。主要特性大小为零,没有方向(方向是任意的)。矢量加法的单位元:对于任何矢量v,都有v+0=v。图示:三维坐标系中的零矢量[0,0,0]4.矢量与点矢量与点的关系核心思想一个点的坐标可以看作是从原点指向该点的矢量。这是连接位置与位移的桥梁。数学解释对于空间中的任意一点P(x,y,z),它唯一对应一个从原点O(0,0,0)出发的矢量。

矢量v=[x,y,z]4.矢量与点相对位置的概念核心观点:参考系的必要性任何位置的描述本质上都是相对的。我们必须选定一个参考点(如坐标系的原点),才能准确描述一个物体的方位。哲学思考:绝对位置的不存在在宇宙尺度下,不存在绝对的位置。我们所能描述的,永远只是一个物体相对于另一个物体的相对关系。图示:点A相对于原点O的位置矢量表示4.矢量与点矢量与点的数学联系核心思想在坐标系中,一个点的坐标可以看作是从原点指向该点的矢量。这是连接几何位置与代数运算的桥梁。数学表达对于空间中的任意一点P(x,y,z),其坐标值直接对应于从原点出发的矢量分量:v=[x,y,z]图示:点P(3,2)与矢量v=[3,2]的对应关系7.矢量的加减法矢量的加法核心定义两个矢量u和v相加,得到新矢量u+v,其分量为对应分量相加。数学表示设u=[uₓ,uᵧ,u_z],v=[vₓ,vᵧ,v_z]则u+v=[uₓ+vₓ,uᵧ+vᵧ,u_z+v_z]几何意义矢量加法遵循平行四边形法则或三角形法则。核心定义矢量减法可以看作是加上负矢,即:u-v=u+(-v)数学表示设u=[ux,uy,uz],v=[vx,vy,vz],则:u-v=[ux-vx,uy-vy,uz-vz]几何意义表示从矢量v的终点指向矢量u的终点的矢量,即“终点指向终点”。矢量的减法7.矢量的加减法矢量加减法的三角形法则8.矢量大小矢量的大小也称为矢量的长度(Length)或范数(Norm)【严格意义上,这里指的是2-范数】任意维度的矢量的大小:

(矢量的大小是矢量分量的平方和的平方根,也叫欧几里得距离)

1-范数(L1norm):所有分量的绝对值之和,也叫曼哈顿距离。9.单位矢量单位矢量(UnitVector)是大小为1的矢量。单位矢量也称为归一化矢量(NormalizedVector)单位矢量有时也简称为法线(Normal)对于任何非零矢量v,可以计算指向与v相同方向的单位矢量,此过程称为矢量的归一化(Normalizing)

例子:归一化二维矢量[12,-5]10.距离公式两点之间的距离

11.矢量点积矢量的点积(DotProduct),也称内积(InnerProduct)

例:11.矢量点积矢量点积的几何解释

11.矢量点积角度为锐角主要指向同一方向直角垂直钝角主要指向相反方向

12.矢量叉积矢量乘积,即叉积(CrossProduct),只能在三维中应用。

例如:

Unity应用场景举例:物体移动核心原理说明利用矢量加法更新物体位置,结合标量乘法控制移动速度,实现平滑的位移效果。关键实现代码(C#)//获取物体当前位置Vector3currentPos=transform.position;//定义移动方向和速度Vector3moveDir=Vector3.forward;//向前floatspeed=5f;//更新位置:位置+方向*速度*时间transform.position=currentPos+moveDir*speed*Time.deltaTime;图示:Unity中立方体向前移动的矢量运算示意Unity应用场景举例:目标追踪实现原理说明使用矢量减法计算物体到目标的方向矢量,归一化后乘以速度,实现平滑追踪效果。核心代码实现(C#)publicTransformtarget;//目标对象publicfloatspeed=3f;//移动速度voidUpdate(){Vector3dir=target.position-transform.position;transform.Translate(dir.normalized*speed*Time.deltaTime);}Unity应用场景举例:力的合成应用说明使用矢量加法将多个力(如重力、推力)合成为一个总力,然后施加给物体,以模拟真实的物理运动效果。关键代码实现(C#)Rigidbodyrb;publicVector3force1,force2;voidStart(){rb=GetComponent<Rigidbody>();//合成总力Vector3totalForce=force1+force2;rb.AddForce(totalForce);}物理模型示意图Unity应用场景举例:相机跟随应用原理说明通过计算目标物体与相机之间的固定偏移量(Vector3),在每一帧(LateUpdate)更新相机位置,确保相机始终跟随目标移动,保持相对视角稳定。关键代码实现(C#)publicTransformtarget;//目标物体publicVector3offset;//偏移量voidLateUpdate(){transform.position=target.position+offset;}空间关系示意图Target(目标)Camera(相机)Offset(偏移)Unity应用场景距离:反弹效果应用原理说明当物体发生碰撞时,利用矢量运算计算反弹后的速度方向。核心逻辑是将速度矢量在碰撞法线方向上的分量反转,从而模拟真实的物理反弹效果。关键实现代码(C#)voidOnCollisionEnter(Collisioncollision){Rigidbodyrb=GetComponent<Rigidbody>();//获取碰撞法线并计算反射速度Vector3normal=collision.contacts[0].normal;Vector3reflected=Vector3.Reflect(rb.velocity,normal);rb.velocity=reflected;}矢量反射原理示意法线N入射向量I反射向量RUnity应用场景距离:范围检测核心原理与应用通过矢量减法计算当前物体与目标物体之间的空间矢量,获取其长度(即距离),从而判断目标是否进入设定的警戒或交互范围。常用于敌人AI感知、技能施法判定等功能。关键实现代码(C#)publ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论