赞
踩
2:点(Point):点中的数表示了一个位置,它没有大小、方向的概念
3:在Unity中,只有Vector2、Vector3类型,没有Point2、Point3类型。 Vector2类型可以用来表示2D向量和点。Vector3类型可以用来表示3D向量和点。
Transform.position表示一个点,即游戏物体在世界坐标系中的点。
Transform.forward表示一个向量,即当前物体的物体坐标系的z轴在世界坐标系上的指向。
在Unity中,点和向量都是以(x,y,z)的形式表示。
4:当我们想让游戏物体处于某个位置时,我们可以使用Vector3类型来表示这个点的位置坐标。
当我们想让游戏物体沿着某个方向以一定的速度移动时,我们可以使用Vector3类型来表示速度的向量值,即速度的大小和方向。
当我们想计算2个游戏物体之间的距离时,实际上计算的就是以这2个游戏物体为起点和终点的向量的长度。
5:零向量是非常特殊的一个向量,它是唯一一个大小为0的向量,也是唯一一个没有方向的向量。2D(0,0),3D(0,0,0) 在Unity中,用 Vector3.zero 来表示3D零向量
6:负向量 每个向量都有一个负向量,满足条件:一个向量和它的负向量相加等于零向量。 向量变负,将得到一个和原向量大小相等,方向相反的向量。(2,-3,3)的负向量为(-2,3,-3)。即将向量的每个分量都变负
7:向量的长度 向量的长度即向量的大小或者向量的模 向量的大小就是向量各分量平方和的平方根
2D向量的长度: 3D向量的长度:
在Unity中,可以通过Vector3.magnitude计算向量的长度。Vector3.sqrMagnitude则返回向量长度的平方
Vector3.Distance(A,B)可以计算2个点A,B之间的距离,即返回向量AB或向量BA的长度。等同于(B-A).magnitude或(A-B).magnitude。
一般计算比较两个物体之间距离 使用 Vector3.sqrMagnitude 因为开根号计算量很大
8:向量与标量的乘法,即将向量的每个分量分别与标量相乘 3D向量与标量相乘:3(1,2,3) = (3,6,9)
9:向量与非零标量的除法,即乘以该标量的倒数
Unity中使用运算符*来计算与标量的乘法,用运算符/来计算与标量的除法
10:单位向量也叫做标准化向量,就是大小为1的向量。(向量 (1,1)不是一个单位向量长度为 根号2)
在只关心向量方向,不关心向量大小时,可以使用单位向量,例如求一个面的法线向量时。
对任意的非零向量,我们都可以计算出它的单位向量,即将其归一化(normalization)。
向量的归一化:求得向量的长度后,用向量除以它的长度。
(4,3)归一化后的单位向量为:
在Unity中,可以使用Vector3.Normalize来归一化向量。使用Vector3.normalized来获得归一化后的单位向量
11:向量的加减
只有在两个向量的维度相同时,才可以相加或相减。向量的加法和减法,即将向量的各个分量相加或相减。
(1,3)+(2,5) = (1+2,3+5) = (3,8)
(1,3)-(2,5) = (1-2,3-5) = (-1,-2)
向量的加法满足交换律:a+b = b+a
向量的减法则不满足交换律:a-b = -(b-a)
向量的加法可以理解成平移向量。向量的减法则可以理解为平移负向量。 Unity中,使用运算符+来计算向量的加法。使用运算符-来计算向量的减法。
12:向量的乘法 -----点积 也叫做向量的内积 表示为a·b,点不可以省略
计算时,向量的点积就是对应分量乘积的和,结果为一个标量
点积的计算公式为a·b=(ax,ay)·(bx,by)=axbx+ayby
(0,2)·(3,3) = 0×3+2×3 = 0+6 = 6
向量的点积满足交换律,即a·b = b·a
点积的第二种计算方法,则是通过两个向量之间的夹角的cos值
a·b = |a||b|cosθ, θ是向量a和向量b的夹角。
点乘的结果越大,两向量越相近。通常也被用来求两个向量之间的夹角的大小。
可以通过向量的点积的结果的符号来判断两个向量的位置关系。
如果值大于0,则夹角在0度到90度之间(不包含90度),两个向量的方向基本相同。
如果值等于0,则夹角为90度,两个向量的方向相互垂直。
如果值小于0,则夹角在90度到180度之间(不包含90度),两个向量的方向基本相反。
向量的点积还可以用来求得一个向量在另一个向量上的投影。
向量b在向量a上的投影的长度可以表示为
向量b在向量a上的投影可以表示为
(其实是先求出向量a 的单位向量 向量a/向量a的模长,再求出b在a上的投影长度, 投影长度乘以a的单位向量就是 b在a的投影)
在Unity中,向量的点积可以通过Vector3.Dot来计算。可以使用Vector3.Angle来获得两个向量之间的夹角的大小。结果在0度到180度之间
13:向量的乘法 -----叉积 也叫做向量的外积 表示为a×b,×不可以省略
叉积的结果仍是一个向量,叉积仅可应用于3D向量
叉积的计算公式为
a×b=(ax,ay,az)×(bx,by,bz)=(aybz-azby,azbx-axbz,axby-aybx)
(1,2,3)×(-2,-2,3)=(6-(-6),(-6)-3,(-2)+4)=(12,-9,2)
叉积得到的向量垂直于原来的两个向量。
a=(1,2,3),b=(-2,-2,3),a×b=(12,-9,2)。a·(a×b)=0,b·(a×b)=0。
a×b的长度等于向量的大小与向量夹角的sin值的积,即
也是以a和b为两边的平行四边形的面积的 大小。
我们可以通过向量的叉积来得到一个平面的法向量。
还可以通过向量的叉积得到的结果向量的方向来判断向量b是在向量a的顺时针方向还是逆时针方向。
在Unity中,向量的叉积可以通过Vector3.Cross来计算。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。