3D数学 ---- 矩阵的几何解释

转载 2015年11月21日 18:20:17

原文地址:http://www.cppblog.com/lovedday/archive/2008/01/09/40813.html


一般来说,方阵能描述任意线性变换。线性变换保留了直线和平行线,但原点没有移动。线性变换保留直线的同时,其他的几何性质如长度、角度、面积和体积可能被变换改变了。从非技术意义上说,线性变换可能“拉伸”坐标系,但不会“弯曲”或“卷折”坐标系。

 

矩阵是怎样变换向量的

向量在几何上能被解释成一系列与轴平行的位移,一般来说,任意向量v都能写成“扩展”形式:

另一种略有差别的形式为:

注意右边的单位向量就是x,y,z轴,这里只是将概念数学化,向量的每个坐标都表明了平行于相应坐标轴的有向位移。

让我们将上面的向量和重写一遍,这次分别将pqr定义为指向+x,+y和+z方向的单位向量,如下所示:

v = xp + yq + zr

现在,向量v就被表示成向量pqr的线性变换了,向量pqr称作基向量。这里基向量是笛卡尔坐标轴,但事实上,一个坐标系能用任意3个基向量定义,当然这三个基向量要线性无关(也就是不在同一平面上)。以pqr为行构建一个3 x 3矩阵M,可得到如下矩阵:

用一个向量乘以该矩阵,得到:

如果把矩阵的行解释为坐标系的基向量,那么乘以该矩阵就相当于执行了一次坐标转换,如果aM=b,我们就可以说,Ma转换到b

从这点看,术语“转换”和“乘法”是等价的。

坦率地说,矩阵并不神秘,它只是用一种紧凑的方式来表达坐标转换所需的数学运算。进一步,用线性代数操作矩阵,是一种进行简单转换或导出更复杂转换的简便方法。

 

矩阵的形式:

基向量[1, 0, 0], [0, 1, 0], [0, 0, 1]乘以任意矩阵M

用基向量[1, 0, 0]乘以M时,结果是M的第1行。其他两行也有同样的结果,这是一个关键的发现:矩阵的每一行都能解释为转换后的基向量。

这个强有力的概念有两条重要性质:

1、有了一种简单的方法来形象化解释矩阵所代表的变换。

2、有了反向建立矩阵的可能 ---- 给出一个期望的变换(如旋转、缩放等),能够构造一个矩阵代表此变换。我们所要做的一切就是计算基向量的变换,然后将变换后的基向量填入矩阵。

首先来看看2D例子,一个2 x 2矩阵:

这个矩阵代表的变换是什么?首先,从矩阵中抽出基向量pq

p = [2   1]

q = [-1  2]

图7.1以“原”基向量(x轴,y轴)为参考,在笛卡尔平面中展示了这些向量。

如图7.1所示,x基向量变换至上面的p向量,y基向量变换至q向量。所以2D中想象矩阵的方法就是想象由行向量构成的“L”形状。这个例子中,能够很清楚的看到,M代表的部分变换是逆时针旋转26度。

当然,所有向量都被线性变换所影响,不只是基向量,从“L”形状能够得到变换最直观的印象,把基向量构成的整个2D平行四边形画完整有助于进一步看到变换对其他向量的影响,如图7.2所示:

平行四边形称作“偏转盒”,在盒子中画一个物体有助于理解,如图 7.3 所示:

很明显,矩阵M不仅旋转坐标系,还会拉伸它。

这种技术也能应用到3D转换中。2D中有两个基向量,构成"L"型;3D中有三个基向量,它们形成一个”三脚架“。首先,让我们展示出一个转换前的物品。图7.4展示了一个茶壶,一个立方体。基向量在”单位“向量处。

(为了不使图形混乱,没有标出z轴基向量[0, 0, 1],它被茶壶和立方体挡住了。)

现在,考虑以下3D变换矩阵:

从矩阵的行中抽出基向量,能想象出该矩阵所代表的变换。变换后的基向量、立方体、茶壶如图7.5所示:

这个变换包含z轴顺时针旋转45度和不规则缩放,使得茶壶比以前”高“。注意,变换并没有影响到z轴,因为矩阵的第三行是[0, 0 , 1]。

Unity Shader入门介绍

原文地址:http://www.bubuko.com/infodetail-655318.html 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散...

Unity Shader ——人物穿越效果

Unity Shader ——人物穿越效果旋转收缩效果如图: 旋转函数要求:中间旋转程度大,外围旋转程度小。 扭曲函数的扭曲角度可采用高斯函数,也可采用(1-纹理坐标到中心坐标的距离)。 收缩函数要...

3D 数学库-矩阵 向量 四元数

  • 2008年10月17日 16:21
  • 14KB
  • 下载

【OpenGL/ES】 第05讲 3D数学-旋转矩阵的推导

矩阵整合了旋转平移缩放,3D中绕任意轴旋转的矩阵表示则是矩阵计算中最复杂的一环,这种旋转比绕坐标轴的旋转更加复杂。...

3D数学之-向量矩阵欧拉角和四元数

摘要: 向量运算和点乘和叉乘很重要。 物体变换等价于相反的量变换坐标系(可以不相反的顺序例如欧拉角)。 坐标系间转换,例如物惯到惯物,那么需要相反的顺序相反的变换(逆)执行变换。 矩阵...

3d计算机数学笔记(1) 齐次矩阵与透视投影

本文目录结构: 1.什么是齐次矩阵 2.齐次矩阵在透视投影上的运用 1.什么是齐次矩阵 01.齐次空间 所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示。例如,二维点(x,y)的...

3D数学基础--矩阵线性变换

前言本章主要讨论用3×3矩阵表达3D线性变换,这个变换不包括平移,包含平移的变换称作仿射变换(就是线性变换后接着平移),需要用4×4矩阵表达。所以本章所讨论的变换都是基于坐标系原点的变换。旋转 2D中...

【OpenGL/ES】 第01讲 3D数学-逆矩阵的推导

在进行坐标系变换的时候,必然会用到的就是矩阵的逆矩阵,逆矩阵的推导过程就是求矩阵的n阶行列式和伴随矩阵的过程。...

3D数学--学习笔记(一):笛卡尔坐标系、向量、矩阵初识

3D游戏开发基础

3D数学基础--矩阵扩展

矩阵的行列式 数学运算 1,在任意方阵中都存在一个标量,称作该方阵的行列式,非方阵矩阵的行列式是未定义的。n × n阶矩阵的行列式定义非常复杂,我们先从常用的2 × 2,3 × 3,4 × 4矩阵开...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3D数学 ---- 矩阵的几何解释
举报原因:
原因补充:

(最多只允许输入30个字)