向量、矩阵几何意义

主宰稳场 提交于 2019-11-30 20:03:40

向量

-标量scalar

描述二维、三维空间一个点的坐标。例如点a(ax, ay)a(ax, ay, az)

向量-矢量(vector)

  • 方向(direction)
  • (magnitude,俗称长度)的有向线段

例如a(ax, ay)a(ax, ay, az),那这与点有什么区别呢?(的区别)

单位向量-归一化运算normalized vector

a(ax, ay)归一化运算 = clip_image001[4]

向量运算-加法 (向量对向量)

加法可以求两向量的半角向量

设向量a = (ax, ay, az),向量b = (bx, by, bz) ,向量c

c = a + b = (ax, ay, az) + (bx, by, bz) = (ax + bx, ay + by, az + bz)

平行四边形法则:

clip_image002[4]

三角形法则:首尾相连(谁在前谁就是结果向量起始点)

clip_image003[4]

向量运算-减法(向量对向量)

向量减法可以求两个向量的相对偏移距离。

例如点b相对于点a的偏移距离

clip_image004[4]谁在后谁就是结果向量起始点

c = b – a再对c取模运算就可得到二者间的距离

向量运算-向量乘法

向量与标量乘法或除法:几何意义是对向量进行按比例缩放。例如

k · a = k · (ax, ay, az) = (kax, kay, kaz)  -放大k

clip_image005[4]   -缩小k

向量与向量乘法:

clip_image006[4]

点积

几何意义一:投影clip_image007[4]

·         b单位向量a方向上的投影,投影具有符号性,取决于b的方向。

·         如果a不是单位向量,那么再乘以a的长度就能得到投影值。

·         如果一个向量v在自身投影,就是v·v = v2,继而可以求出v的模

几何意义二:角度

clip_image008[4]clip_image009[4]

方位判断

·         J = 90o, b垂直于a

·         J > 90o, ba的后方

·         J < 90o, ba的前方

叉积

向量a与向量b的叉积结果向量cc垂直于向量ab组成的平面,可把其看作平面法线。

矩阵

行矩阵

M1m =clip_image010[4]

列矩阵

M1mT = Mm1clip_image011[4]

对角矩阵

·         也是方块矩阵,行与列相同

·         除了对角线以外的元素都为0,称为方块矩阵

clip_image012[4]

单位矩阵-一种特殊的对角矩阵

·         默认用 I 表示单位矩阵

·         对角线元素全为1,其余元素都为0

·         任何矩阵与单位矩阵相乘,结果任为其本身

clip_image013[4]

转置矩阵

·         MijT = Mji

·         矩阵的行变为列,列变为行

·         行矩阵与列矩阵互为转置矩阵

逆矩阵

·         必须为方阵才有逆矩阵

·         M-1·M = I          //必须满足

·         (M-1)-1 = M         //

·         I-1 = I                //单位矩阵的逆矩阵=自身

·         (MT)-1 = (M-1)T   //转置矩阵的逆矩阵等于逆矩阵的转置

·         (A·B·C)-1 = A-1·B-1·C-1

Unity提供了相关的逆矩阵函数

正交矩阵

·         M·MT = MT·M = I

线性变换

·         缩放、旋转、平移

缩放:clip_image014[4] 只需要改变单位矩阵对角线元素值,(其中w分量为1===> 目标矩阵(行矩阵S(q)

旋转:clip_image015[4] clip_image016[4] clip_image017[4] ===>目标矩阵(行矩阵)·R(θ)

平移一:clip_image018[4]   ===>目标矩阵(行矩阵T(p)

平移二:T(p) =clip_image019[4]        ===>T(p)·目标矩阵(列矩阵)

基础变换矩阵clip_image020[4] 

M3x3看作缩放旋转,t3x1看作平移,1w分量

将一个矩阵进行缩放、旋转、平移的复合变换先后顺序不一样,其结果也不一样。绝大多数情况下都是采用前述顺序。

矩阵的几何意义

为了进一步研究多元方程组,将多元方程组的系数组合在一个矩形数表,形成了矩阵。

例如把三元方程组转化为三阶矩阵

clip_image021[4]

clip_image022[4]

例如,已知子坐标空间C3个坐标轴在父坐标空间P下的表示xc, yc, zc,以及其原点位置Oc。当给定一个子坐标空间中的一点Ac = (a , b ,c),按照下面4个步骤求出Ac在父坐标空间下的位置。

1从坐标空间原点开始Oc

2x轴方向移动x个单位:Oc + axc

3y轴方向移动y个单位:Oc + axc + byc

4z轴方向移动z个单位:Oc + axc + byc + czc

Ap = Oc + axc +byc + czc

= (xoc, yoc ,zoc) + a(xxc, yxc, zxc) + b(xyc , yyc, zyc) + c(xzc, yzc, zzc)

= (xoc, yoc ,zoc) + clip_image024[4] clip_image026[6]

= (xoc, yoc ,zoc) + clip_image028[4] clip_image026[7]

= (xoc, yoc ,zoc, 1) + clip_image030[6] clip_image032[10]

= clip_image034[4] clip_image030[7] clip_image032[11]

= clip_image036[4] clip_image032[12]

= clip_image038[6] clip_image032[13]

MA->p = clip_image038[7]

 

透视投影矩阵:

近裁剪面高度:clip_image040[4]

远裁剪面高度:clip_image042[4]

摄像机的ViewPortRect中的WH属性决定着Game视图横纵比

clip_image044[4]

clip_image046[4]

clip_image048[4]

计算某一点是否在裁剪区域内,只需将该点与clip_image050[4],由观察空间变换到裁剪空间。

clip_image052[4]

          =clip_image054[4]





注意此时的W分量,可能<0为负数。如果一个点在视锥体内,必须满足

clip_image056[6]

正交投影矩阵

 

近裁剪面高度:clip_image058[4]

远裁剪面高度:clip_image060[4]

横纵比:clip_image062[4]

clip_image064[4]

那么将顶点带入该矩阵相乘:

clip_image066[4]

                     =clip_image068[4]

判断条件如下

clip_image056[7]

 

法线变换

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!