zoukankan      html  css  js  c++  java
  • 【3D数学】之向量

    向量

    向量数学定义

    从数学角度来看向量就是一个数字列表,对程序而言则是数组。

    数学上区分向量和标量,比如“速度”和“位移”是向量,“速率”和“长度”是标量。

    向量可以从维度上区分,向量可以是任意维度的。比较特殊的是标量,可以认为是一维的向量。在图形学中,经常用到的是2维、3维和4维向量。

    向量可以表示为行向量和列向量。水平书写的称为行向量,比如[1, 2, 3]。垂直书写的称为列向量,比如。

    向量的几何意义

    一个二维向量如下图所示。由图可以看出,向量的定义有两个要素——大小和方向。向量的大小就是向量的长度(模),向量的方向描述向量在空间的中的指向。

     

    向量所代表的位移可以考虑分解成和坐标轴平行的分量,把分量的位移组合起来就可以得到向量作为整体所代表的位移。如下图所示,向量[1, -3, 4]表示一个位移,可以将此位移想象为向右平移1个单位,向下平移3个单位,向前平移4个单位。这些步骤的执行顺序不重要,不同的顺序会得到同样的位移量。

     

    向量和点

    “点”用来描述位置,但没有大小和厚度。“向量”描述位移,有大小和方向但没有位置。

    对任意的x和y,下图展示了点(x, y)和向量[x, y]之间的关联。可以看出向量[x, y]描述原点到点(x, y)的位移量。

     

    虽然向量和点在概念上完全不一样,但在数学上等价。两个点之间的距离为从一个点到另一个点的向量长度(模),向量长度的计算在下面会提到。

    向量运算

    零向量

    任何集合都存在加性单位元x,对任何元素y,满足y+x=y。N维向量集合的加性单位元是n维“零向量”。例如,三维零向量表示为[0, 0, 0]。

    零向量非常特殊,它是唯一大小为零的向量,也是唯一没有方向的向量。可以认为零向量表示的是“没有位移”,就像零标量表示的是“没有数量”一样。

    负向量

    任何集合都存在加性逆元-x,它和x相加等于加性单位元。对向量而言,每个向量v都存在一个加性逆元-v,它的维数和v一样,满足v+(-v)=0。比如,-[x, y] = [-x, -y]。

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

    向量的模

    向量的大小被称作向量的长度或模。向量的大小就是向量各分量平方和的平方根。比如对于一个三维向量v,模的计算公式为。

    标量和向量的乘法

    标量和向量的乘法比较直接,将向量的每个分量与标量相乘即可。应用到三维向量,如:。

    标量和向量的乘法需要注意以下几点:

    l         标量和向量的乘法优先级高于减法和加法。

    l         标量不能除以向量,并且向量不能处以另一个向量。

    l         负向量能被认为是乘法的特殊情况,即乘以标量-1。

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

    向量标准化

    对于很多向量,有时我们只关心方向而不关心大小,这时使用单位向量更方便。

    对于任何非零向量,都可以计算出一个和v方向相同大小为1的单位向量,这个过程成为向量的标准化。向量v的标准化公式为:。

    在几何意义上,二维向量v的单位向量,是以原点为尾,向量的头将接触到圆心在原点的单位圆,如下图所示。同理,三维向量v的单位向量将接触到单位球。

     

    向量的加法和减法

    如果两个向量维数相等,则他们可以相加和相减。向量的加法和减法运算法则很简单,两个向量对应的分量相加和相减即可。

    向量的加法满足交互律,即a+b=b+a。向量的减法不满足交换律。

    两个向量a和b相加的几何解释为:平移向量,使向量a的头连接向量b的尾,接着从a的尾向b的头画一个向量c即为a和b相加的结果。二维向量的加法如下图所示。

     

    从向量的加法可以解释为什么向量能被解释为与轴平行的位移序列,即:

    向量点积

    向量的点积记作,向量点积就是对应分量乘积的和, 其结果是一个标量。可定义为:,应用到三维向量,。

    需要注意的是,它的优先级高于加法和减法,中间的点乘符号不能省略。

    在几何意义上,点积结果描述了两个向量的“相似”程度,点积结果越大,两个向量越近。如下图所示,点积等于向量的大小和向量夹角的cos值的积:。

     

    给定两个向量v和n,能将v分解为两个向量和,它们分别平行和垂直于n,并满足。其中,由可知。

    向量叉积

    向量的叉积记作,对于三维向量u和v,其叉积定义为。叉积的优先级高于加法和减法,也高于点积。比如,因为点积返回一个标量,而标量和向量是不能叉乘的。叉积满足反交换律,即。

    在几何意义上,叉积得到的向量垂直于原来的两个向量,如下图所示。图中向量a和b在一个平面上,向量指向该平面的正上方,垂直于向量a和b。

     

    叉积的长度等于向量的大小和向量夹角的sin值的积,即。

  • 相关阅读:
    PHP的语言规范
    Js 中的this
    Js 事件
    Js DOM 操作
    Js DOM对象
    Js 对象三
    Js 定时器
    Js 对象二
    Js 对象
    POJ 2987 Firing(最大流最小割の最大权闭合图)
  • 原文地址:https://www.cnblogs.com/liustdelphi/p/2865854.html
Copyright © 2011-2022 走看看