向量
全篇以2D为例,但对高维同样适用。
向量性质 [07:54]
-
方向: B−A 或 →a
-
长度:||B−A|| 或 ||→a|| (与起点无关)
-
单位向量:→a=→a||→a||,模长为1,通常用于表示方向
向量是一维的,分为向量和列向量。如果没有特殊说明,一般默认为列向量。 所以书写公式时,一个向量写为 →a=(x,y)T,其长度为||→a||=√x2+y2
向量加法
代数意义
→a=(x1,y1)T,→b=(x2,y2)T
→a+→b=(x1+x2,y1+y2)T
几何意义

向量点乘
几何意义

→a⋅→b=||→a||⋅||→b||⋅cos<→a,→b>
向量点乘的结果是标量
📌补充: 由 →a 到 →b 的夹角 <→a,→b> 是 θ , 如果是由 →b 到 →a 的夹角 <→b,→a> , 则为 −θ 。由于cos是关于x轴对称的,因此a˙b=b˙a
代数意义
→a=(x1,y1)T,→b=(x2,y2)T
→a⋅→b=x1x2+y1y2
性质
-
交换律:→a⋅→b=→b⋅→a
-
分配律: →a⋅(→b+→c)=→a⋅→b+→a⋅→c
-
结合律: (k⋅→a)⋅→b=→a⋅(k⋅→b)=k⋅(→a⋅→b)
作用
-
计算两个向量之间的夹角
cosθ=→a⋅→b||→a||⋅||→b||
当a和b都是单位向量时,可简化为:
cosθ=→a⋅→b
-
计算一个向量投影在另一个向量上的投影
b在a的投影为→b⊥,其长度为:
length=||→b||cosθ=||→b||→a⋅→b||→b||⋅||→a||=→a||→a||→b=ˆa⋅→b
其方向同a。
因此:
→b⊥=(ˆa⋅→b)ˆa
-
把向量分解成垂直和平行的两个向量
-
计算两个向量有多接近
两个向量做点乘,可以反映二者方向的“接近”程度
表示方向是否相同 : 我们假设 →a 已给定,如果一个向量的终点落在虚线上半部分,例如 →b ,则可以认为该向量在方向上与 →a 是相同的或是说都是向前的,此时ˆa⋅ˆb>0;如果一个向量,例如 →c,终点落在虚线下半部分,则可以认为 →a 和 →c 两个向量的方向基本是相反的,此时ˆa⋅ˆb<0
表示接近程度 :点乘结果落在 [−1,1] 上,数值越大越接近,结果为1时方向相同。数值越小方向越远,为-1时方向正好相反。
📌补充:(点乘: →a⋅→b>0 ,方向相同; →a⋅→c<0 ,方向相反)
向量叉乘
几何意义
→c=→a×→b
→c 是一个向量,方向同时与 →a 和 →b 垂直(右手法则),大小为 ||→a||⋅||→b||⋅sinθ (θ 是a到b的夹角)
✅右手螺旋法则:
→c=→a×→b
右手手指指向 →a 方向,然后沿着去往 →b 的方向握紧四指,此时大拇指指向的方向,就是 →c 的方向。
sinθ=−sin(−θ),因此a×b=b×a
性质
[34:15]
- →x×→y=+→z
- →y×→x=−→z
- →y×→z=+→x
- →z×→y=−→x
- →z×→x=+→y
- →x×→z=−→y
- →a×→b=−→b×→a (不满足交换律)
- →a×→a=→0 (不是0,而是长度为0的向量)
- →a×(→b+→c)=→a×→b+→a×→c (分配律)
- →a×(k→b)=k(→a×→b) (结合律)
左手则符号相反
📌 在一个三维坐标系中,如果→x×→y=→z,那么这个坐标系称为右手坐标系。
代数意义
[36:11]
→a×→b=(yazb−ybzazaxb−xazbxayb−yaxb)=[0−zayaza0−xa−yaxa0][xbybzb]
💡思考: 这个式子中,xa,ya,za 是→a 在三维坐标系中的三个坐标分量的代数表示。 叉乘只用于3D中,在2D中没有定义。
式子中的矩阵称为dual matrix of a,常写作A∗
❗ 在本课程中默认使用右手坐标系,OPENGL, UE, unity等api默认使用左手坐标系。
向量叉乘在图形学中的作用
-
判定左和右
📌左右: 目标向量逆时针旋转指向的区域,是目标向量的左侧,反之是右侧。
如果→a×→b 的结果是正值,即与 Z 轴方向相同,就表示 →b 在 →a 的左侧。
❓ 叉乘的结果是一个向量,向量没有正负属性,什么叫结果是正的?
答:这里假设a和b都是xy平面上的向量,即
a⊤=(xa,ya,0)b⊤=(xb,yb,0) c=a×b,那么
c⊤=(0,0,zc) 在这种情况下,zc>0认为结果是正的,b在a的左侧。
离开了前面的假设,就不能用这种方法简单的判断了。
-
判断内和外
✅如何判断P点在A、B、C的内部?
AB×AP,可以得到 AP 在 AB 的左侧。BC×BP,可以得到 BP 在 BC 的左侧。CA×CP,可以得到 CP 在 CA 的左侧。这样,就可以判断出P点在A、B、C的内部(P点在这三条边的同一侧)。
-
构建右手坐标系
有三个单位向量,两两垂直:
||→u||=||→v||=||→w||=1
→u⋅→v=→v⋅→w=→u⋅→w=0
且 →w=→u×→v
则这三个向量构成一个右手坐标系。
可以把任意一个向量分解到轴上去:
→p=(→p⋅→u)→u+(→p⋅→v)→v+(→p⋅→w)→w
- (→p⋅→u) 是投影长度
- →u 是方向
其它术语
线性组合:设α₁,α₂,…,αₑ(e≥1)是域P上线性空间V中的有限个向量.若V中向量α可以表示为:α=k₁α₁+k₂α₂+…+kₑαₑ(kₑ∈P,e=1,2,…,s),则称α是向量组α₁,α₂,…,αₑ的一个线性组合。
向量空间:由向量组成的集合,满足加法封闭性、乘法封闭性。
内积:指接受在实数R上的两个向量并返回一个实数值标量的二元运算。
内积空间:增添了一个额外的结构的向量空间。这个额外的结构叫做内积,或标量积,或点积。这个增添的结构允许我们谈论向量的角度和长度。
赋范向量空间:拥有一个范数的向量空间叫做赋范向量空间。
半赋范向量空间:拥有半范数的叫做半赋范向量空间。
哈达玛积:Hadamard product,又叫Schur积。定义为(s⊙t)j=sjtj,例如:
[1 2]⊙[3 4]=[1∗3 2∗4]=[3 8](28)
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES101_mdbook/