Processing math: 100%

向量

全篇以2D为例,但对高维同样适用。

向量性质 [07:54]

  • 方向: BAa

  • 长度:||BA||||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

几何意义

向量点乘

几何意义

ab=||a||||b||cos<a,b>

向量点乘的结果是标量

📌补充:ab 的夹角 <a,b>θ , 如果是由 ba 的夹角 <b,a> , 则为 θ 。由于cos是关于x轴对称的,因此a˙b=b˙a

代数意义

a=(x1,y1)T,b=(x2,y2)T

ab=x1x2+y1y2

性质

  • 交换律:ab=ba

  • 分配律: a(b+c)=ab+ac

  • 结合律: (ka)b=a(kb)=k(ab)

作用

  1. 计算两个向量之间的夹角

    cosθ=ab||a||||b||

当a和b都是单位向量时,可简化为:

cosθ=ab

  1. 计算一个向量投影在另一个向量上的投影

b在a的投影为b,其长度为:

length=||b||cosθ=||b||ab||b||||a||=a||a||b=ˆab

其方向同a。

因此:

b=(ˆab)ˆa

  1. 把向量分解成垂直和平行的两个向量

  2. 计算两个向量有多接近

    两个向量做点乘,可以反映二者方向的“接近”程度

    表示方向是否相同 : 我们假设 a 已给定,如果一个向量的终点落在虚线上半部分,例如 b ,则可以认为该向量在方向上与 a 是相同的或是说都是向前的,此时ˆaˆb>0;如果一个向量,例如 c,终点落在虚线下半部分,则可以认为 ac 两个向量的方向基本是相反的,此时ˆaˆb<0

    表示接近程度 :点乘结果落在 [1,1] 上,数值越大越接近,结果为1时方向相同。数值越小方向越远,为-1时方向正好相反。

    📌补充:(点乘: ab>0 ,方向相同; ac<0 ,方向相反)

向量叉乘

几何意义

c=a×b

c 是一个向量,方向同时与 ab 垂直(右手法则),大小为 ||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×(kb)=k(a×b) (结合律)

左手则符号相反

📌 在一个三维坐标系中,如果x×y=z,那么这个坐标系称为右手坐标系。

代数意义

[36:11]

a×b=(yazbybzazaxbxazbxaybyaxb)=[0zayaza0xayaxa0][xbybzb]

💡思考: 这个式子中,xa,ya,zaa 在三维坐标系中的三个坐标分量的代数表示。 叉乘只用于3D中,在2D中没有定义。

式子中的矩阵称为dual matrix of a,常写作A

❗ 在本课程中默认使用右手坐标系,OPENGL, UE, unity等api默认使用左手坐标系。

向量叉乘在图形学中的作用

  1. 判定左和右

    📌左右: 目标向量逆时针旋转指向的区域,是目标向量的左侧,反之是右侧。

    如果a×b 的结果是正值,即与 Z 轴方向相同,就表示 ba 的左侧。

❓ 叉乘的结果是一个向量,向量没有正负属性,什么叫结果是正的
答:这里假设a和b都是xy平面上的向量,即
a=(xa,ya,0)b=(xb,yb,0) c=a×b,那么
c=(0,0,zc) 在这种情况下,zc>0认为结果是正的,b在a的左侧。
离开了前面的假设,就不能用这种方法简单的判断了。

  1. 判断内和外

    ✅如何判断P点在A、B、C的内部?

    AB×AP,可以得到 APAB 的左侧。BC×BP,可以得到 BPBC 的左侧。CA×CP,可以得到 CPCA 的左侧。这样,就可以判断出P点在A、B、C的内部(P点在这三条边的同一侧)。

  2. 构建右手坐标系

    有三个单位向量,两两垂直:

    ||u||=||v||=||w||=1

    uv=vw=uw=0

    w=u×v

    则这三个向量构成一个右手坐标系。

    可以把任意一个向量分解到轴上去:

    p=(pu)u+(pv)v+(pw)w

    • (pu) 是投影长度
    • u 是方向

其它术语

线性组合:设α₁,α₂,…,αₑ(e≥1)是域P上线性空间V中的有限个向量.若V中向量α可以表示为:α=k₁α₁+k₂α₂+…+kₑαₑ(kₑ∈P,e=1,2,…,s),则称α是向量组α₁,α₂,…,αₑ的一个线性组合。

向量空间:由向量组成的集合,满足加法封闭性、乘法封闭性。

内积:指接受在实数R上的两个向量并返回一个实数值标量的二元运算。

内积空间:增添了一个额外的结构的向量空间。这个额外的结构叫做内积,或标量积,或点积。这个增添的结构允许我们谈论向量的角度和长度。

赋范向量空间:拥有一个范数的向量空间叫做赋范向量空间。

半赋范向量空间:拥有半范数的叫做半赋范向量空间。

哈达玛积:Hadamard product,又叫Schur积。定义为(st)j=sjtj,例如:
[1 2][3 4]=[13 24]=[3 8](28)


本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES101_mdbook/