zoukankan      html  css  js  c++  java
  • 《3D数学基础:图形与游戏开发》5.第5章 向量运算

    3. 零向量

    • 零向量不等于一个带你,因为零向量没有定义某个位置。
    • 零向量表示的是 “没有位移”,就像标量零表示的是 “没有数量” 一样

    4.负向量

    • 几何解释:向量变负,将得到一个和原向量大小相等,方向相反的向量

    5.向量大小(长度或模)

    • 公式:

      [||v||=sqrt{(v_x^2+v_y^2)}(对2D向量v) ]

      [||v||=sqrt{(v_x^2+v_y^2+v_z^2)}(对3D向量v) ]

    • 几何解释:对 2D 向量 v ,能构造一个以 (v) 为斜边的直角三角形,直角边的长度分别为分量 (v_x) ,(v_y) 的绝对值,斜边长度即为向量 (v) 的大小

    6. 标量和向量的乘法

    • 注意点

      • 标量和向量的乘法和除法优先级高于加法和减法,例如,(3a+b)((3a)+b) ,而不是 (3(a+b))
      • 标量不能除以向量,并且向量不能除以另一个向量
    • 几何解释

      • 几何意义上,向量乘以标量 k 的效果是以因子 (|k|) 缩放向量的长度

    7.标准化向量

    • 应用背景:对于许多向量,只关心它的方向而不关心它的大小,例如,“我面向的是什么方向?”,在这样的情况下,使用单位向量将非常方便
    • 几何解释
      • 2D 环境中,如果以原点为尾画一个单位向量,那么向量的头将接触到圆心在原点的单位圆,在 3D 环境中,单位向量将接触到单位球

    8.向量的加法和减法

    • 注意点

      • 向量不能和标量或维数不同的向量相加减
      • 和标量加法一样,向量加法满足交换律,但向量减法不满足交换律:永远有 (a+b=b+a) ,但 (a-b=-(b-a)) ,仅当 (a=b) 时,(a-b=b-a)
    • 几何解释

      • 向量 a 和 b 相加的几何解释为:平移向量,使向量 a 的头连接向量 b 的尾,接着从 a 的尾向 b 的头画一个向量,即向量加法的 “三角形法则”
      • “三角形法则” 可以解释之前提到的:向量能被解释为与轴平行的位移序列。例如,向量 [1,-3,4] 为什么可以被解释为位移序列:向右1个单元,向下3个单元,向前4个单元

      [left[egin{array}{c}1 \-3 \4end{array} ight]=left[egin{array}{l}1 \0 \0end{array} ight]+left[egin{array}{c}0 \-3 \0end{array} ight]+left[egin{array}{l}0 \0 \4end{array} ight] ]

    10.向量点乘

    • 向量点乘就是对应分量乘积的和,其结果是一个标量

    • 点乘满足交换律:(a cdot b = b cdot a)

    • 几何解释

      • 点乘等于向量大小与向量夹角的 cos 值的积:(a cdot b=||a|| ||b|| cos heta)

      • 两向量的夹角:( heta=arccos(frac{acdot b}{||a||||b||}))

      • 点乘的结果描述了两个向量的 “相似” 程度,点乘结果越大,两向量越相近

      • 点乘结果的符号可大致确定 ( heta) 的类型

      a·b Θ 角度 a 和 b
      >0 0°≤Θ<90° 方向基本相同
      0 Θ≤90° 正交
      <0 90°<Θ≤180° 方向基本相反
    • 向量投影

      • 给定两个向量 (v)(n),能将 (v) 分解为两个分量:(v_{|})(v_{perp}) 。它们分别平行于和垂直于 (n),并满足 (v=v_{perp}+v_{|})。称平行分量 (v_{|})(v)(n) 上的投影

      • 使用点乘计算投影,几何解释:

        • (mathbf{v}_{|}=mathbf{n} frac{left|mathbf{v}_{mathrm{u}} ight|}{|mathbf{n}|})

        • (egin{aligned} &cos heta=frac{left|mathbf{v}_{|} ight|}{|mathbf{v}|}\ &cos heta|mathbf{v}|=left|mathbf{v}_{mathrm{|}} ight| end{aligned})

        • 所以:

          (egin{aligned} mathbf{v}_{|} &=mathbf{n} frac{|mathbf{v}| cos heta}{|mathbf{n}|} \ &=mathbf{n} frac{|mathbf{v}||mathbf{n}| cos heta}{|mathbf{n}|^{2}} \ &=mathbf{n} frac{mathbf{v} cdot mathbf{n}}{|mathbf{n}|^{2}} end{aligned})

    11.向量叉乘

    • 叉乘仅可用于 3D 向量,叉乘得到一个向量,并且不满足交换律

    • 计算公式

      [left[egin{array}{l} x_{1} \ y_{1} \ z_{1} end{array} ight] imesleft[egin{array}{l} x_{2} \ y_{2} \ z_{2} end{array} ight]=left[egin{array}{l} y_{1} z_{2}-z_{1} y_{2} \ z_{1} x_{2}-x_{1} z_{2} \ x_{1} y_{2}-y_{1} x_{2} end{array} ight] ]

    • 几何解释

      • 叉乘得到的向量垂直于原来的两个向量
    • (mathbf{a} imes mathbf{b}) 的方向判断

      • (mathbf{a} imes mathbf{b}) 垂直于 (mathbf{a})(mathbf{b}) ,但垂直于 (mathbf{a})(mathbf{b}) 有两个方向
      • 判断方法:右手螺旋定则:
    • 叉乘的应用:创建垂直于屏幕、三角形或多边形的向量

  • 相关阅读:
    多条件查询
    BootStrap——BootStrap练习(栅格系统、组件、插件)
    BootStrap——栅格系统
    BootStrap——BootStrap插件
    BootStrap——BootStrap组件
    BootStrap——按钮、图片
    BootStrap——CSS
    BootStrap——新建BootStrap项目
    JQ——表单验证插件(validation)
    JQ——事件(表单、文档/窗口)
  • 原文地址:https://www.cnblogs.com/bky-hbq/p/12684022.html
Copyright © 2011-2022 走看看