Skip to content

GAMES101 学习笔记02:线性代数回顾

向量(Vectors)

a=AB=BA

向量单位化(Vector Normalization)

向量的模(长度):

a

单位向量(长度为1,表示方向):

i=a^=aa

笛卡尔坐标(Cartesian Coordinates)

A=(xy)AT=(x,y)||A||=x2+y2

向量求和(Vector Addition)

向量乘法

  • 点乘(Dot product)
  • 叉乘(Cross product)

点乘(Dot (scalar) product)

ab=abcosθ

对单位向量:

cosθ=a^b^

运算性质:

ab=baa(b+c)=ab+ac(ka)b=a(kb)=k(ab)

笛卡尔坐标系下 2D 与 3D 向量的点乘:

  • in 2D
ab=(xaya)(xbyb)=xaxb+yayb
  • in 3D
ab=(xayaza)(xbybzb)=xaxb+yayb+zazb
点乘在图形学中的应用:
  • 找到两个向量之间的角度(例如光源和表面之间的角度的余弦)
  • 找到一个向量在另一个向量上的投影
点乘计算投影

  • bba上的投影
    • b一定沿着a的方向
      • b=ka^
    • 计算k
      • k=b=bcosθ

投影的意义:

  • 测量两个向量方向的接近程度(夹角)
  • 分解向量(得到两个垂直的向量)
  • 确定两个向量「前」或者「后」(方向基本一致 or 方向基本相反)

叉乘(Cross (vector) product)

  • 叉乘与两个初始向量正交
  • 方向由右手定则确定
  • 有助于构建坐标系

运算性质:

x×y=+zy×x=zy×z=+xz×y=xz×x=+yx×z=ya×b=b×aa×a=0a×(b+c)=a×b+a×ca×(kb)=k(a×b)

笛卡尔坐标系下向量的叉乘:

a×b=(yazbybzazaxbxazbxaybyaxb)a×b=Ab=(0zayaza0xayaxa0)(xbybzb)
叉乘在图形学中的应用
  • 确定左右(正左负右)
  • 确定内外(光栅化中的片段着色

正交基和坐标框架

u=v=wuv=vw=wuw=u×v

(righthanded)

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

(pu)是投影

矩阵(Matrices)

(011117)

矩阵乘法

A×B=(011117)(21110817)=(08172928257850)

运算性质:

  • 通常情况下ABBA
  • (AB)C=A(BC)
  • (A+B)C=AC+BC
  • ABT=BTAT
  • AA1=A1A=I
  • AB1=B1A1

向量点乘与叉乘的矩阵式形式

ab=aTb=(xayaza)(xbybzb)=xaxb+yayb+zazba×b=Ab=(0zayaza0xayaxa0)(xbybzb)