• [Games101] Lecture 02 Review of Linear Algebra


    Review of Linear Algebra

    点乘

    图形学中默认使用列向量

    • 二维

    a ⃗ ⋅ b ⃗ = ( x a y a ) ⋅ ( x b y b ) = x a x b + y a y b \vec{a} \cdot \vec{b}=\left(

    xaya" role="presentation" style="position: relative;">xaya
    \right) \cdot\left(
    xbyb" role="presentation" style="position: relative;">xbyb
    \right)=x_{a} x_{b}+y_{a} y_{b} a b =(xaya)(xbyb)=xaxb+yayb

    • 三维

    a ⃗ ⋅ b ⃗ = ( x a y a z a ) ⋅ ( x b y b z b ) = x a x b + y a y b + z a z b \vec{a} \cdot \vec{b}=\left(

    xayaza" role="presentation" style="position: relative;">xayaza
    \right) \cdot\left(
    xbybzb" role="presentation" style="position: relative;">xbybzb
    \right)=x_{a} x_{b}+y_{a} y_{b}+z_{a} z_{b} a b = xayaza xbybzb =xaxb+yayb+zazb

    • 作用
      • 找到两个向量间的夹角
      • 找到一个向量在另一个向量上的投影
      • 分解向量
      • 方向性:根据点乘的值 ( [ − 1 , 1 ] [-1,1] [1,1]

    image-20220720120249756

    叉积

    image-20220720122707966
    a ⃗ × b ⃗ = ( y a z b − y b z a z a x b − x a z b x a y b − y a x b ) \vec{a} \times \vec{b}=\left(

    yazbybzazaxbxazbxaybyaxb" role="presentation" style="position: relative;">yazbybzazaxbxazbxaybyaxb
    \right) a ×b = yazbybzazaxbxazbxaybyaxb

    • Later in this lecture

    a ⃗ × b ⃗ = A ∗ b = ( 0 − z a y a z a 0 − x a − y a x a 0 ) ( x b y b z b ) \vec{a} \times \vec{b}=A^{*} b=\left(

    0zayaza0xayaxa0" role="presentation" style="position: relative;">0zayaza0xayaxa0
    \right)\left(
    xbybzb" role="presentation" style="position: relative;">xbybzb
    \right) a ×b =Ab= 0zayaza0xayaxa0 xbybzb

    • 作用
      • 判断向量的左右关系:
        • 叉积为正在左侧,否则在右侧
      • 判断一个点是否在三角形内: P P P 点在三条边的同侧(正负号相同)
        • Corner Case:结果为0,自己定义在内侧还是外侧

    image-20220720122839106

    正交坐标系

    Any set of 3 vectors (in 3D) that
    ∥ u ⃗ ∥ = ∥ v ⃗ ∥ = ∥ w ⃗ ∥ = 1 u ⃗ ⋅ v ⃗ = v ⃗ ⋅ w ⃗ = u ⃗ ⋅ w ⃗ = 0 w ⃗ = u ⃗ × v ⃗  (right-handed) 

    u=v=w=1uv=vw=uw=0w=u×v (right-handed) " role="presentation" style="position: relative;">u=v=w=1uv=vw=uw=0w=u×v (right-handed) 
    u =v =w =1u v =v w =u w =0w =u ×v  (right-handed) 

    • 可以将任意一个向量分析到这三个轴上:投影方法

    p ⃗ = ( p ⃗ ⋅ u ⃗ ) u ⃗ + ( p ⃗ ⋅ v ⃗ ) v ⃗ + ( p ⃗ ⋅ w ⃗ ) w ⃗ \vec{p}=(\vec{p} \cdot \vec{u}) \vec{u}+(\vec{p} \cdot \vec{v}) \vec{v}+(\vec{p} \cdot \vec{w}) \vec{w} p =(p u )u +(p v )v +(p w )w

    矩阵

    • 矩阵乘法:需要算第几行第几列,就去找第几行第几列,把两个向量点乘起来

      • Element ( i , j ) (i, j) (i,j) in the product is the dot product of row i i i from A A A and column j j j from B B B

      • 没有交换率

      • 有以下规律

        • ( A B ) C = A ( B C ) (AB)C=A(BC) (AB)C=A(BC)
        • A ( B + C ) = A B + A C A(B+C) = AB + AC A(B+C)=AB+AC
        • ( A + B ) C = A C + B C (A+B)C = AC + BC (A+B)C=AC+BC
      • 向量可以当作列矩阵

    • 矩阵转置

      • 交换行和列 ( i j → j i ) (ij \to ji) (ijji)

      ( 1 2 3 4 5 6 ) T = ( 1 3 5 2 4 6 ) \left(

      123456" role="presentation" style="position: relative;">123456
      \right)^{T}=\left(
      135246" role="presentation" style="position: relative;">135246
      \right) 135246 T=(123456)

      • 性质: ( A B ) T = B T A T (A B)^{T}=B^{T} A^{T} (AB)T=BTAT
    • 单位矩阵

      • 是一个对角阵,只有对角线上有非0元素

      • 来定义矩阵的逆
        I 3 × 3 = ( 1 0 0 0 1 0 0 0 1 ) I_{3 \times 3}=\left(

        100010001" role="presentation" style="position: relative;">100010001
        \right) I3×3= 100010001

    • 矩阵的逆

      • A A − 1 = A − 1 A = I A A^{-1}=A^{-1} A=I AA1=A1A=I
      • ( A B ) − 1 = B − 1 A − 1 (A B)^{-1}=B^{-1} A^{-1} (AB)1=B1A1

    矩阵形式的向量点乘&叉乘操作

    • Dot product

    a ⃗ ⋅ b ⃗ = a ⃗ T b ⃗ = ( x a y a z a ) ( x b y b z b ) = ( x a x b + y a y b + z a z b )

    ab=aTb=(xayaza)(xbybzb)=(xaxb+yayb+zazb)" role="presentation" style="position: relative;">ab=aTb=(xayaza)(xbybzb)=(xaxb+yayb+zazb)
    =a b =a Tb (xayaza) xbybzb =(xaxb+yayb+zazb)

    • Cross product

    a ⃗ × b ⃗ = A ∗ b = ( 0 − z a y a z a 0 − x a − y a x a 0 ) ( x b y b z b ) \vec{a} \times \vec{b}=A^{*} b=\left(

    0zayaza0xayaxa0" role="presentation" style="position: relative;">0zayaza0xayaxa0
    \right)\left(
    xbybzb" role="presentation" style="position: relative;">xbybzb
    \right) a ×b =Ab= 0zayaza0xayaxa0 xbybzb

    PS: A ∗ A^* A :dual matrix of vector a ⃗ \vec{a} a

  • 相关阅读:
    (附源码)mysql+ssm医院挂号系统 毕业设计 250858
    各位同志,Android studio打不开,提示什么动态链接库
    (粗糙的笔记)动态规划
    系统运维工程师
    【浅学Java】三次握手 / 四次挥手
    前端框架里url中#的真正作用
    Kubernetes PV与PVC 持久卷应用
    10款实用的市场分析工具,你知道几个?
    【无标题】 python 数据写入excel
    C# 面向对象
  • 原文地址:https://blog.csdn.net/Muyunuu/article/details/126306133