“生动”讲解——矩阵的空间变换
2015-04-14 17:29
169 查看
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!
我们把每个顶点坐标看成一个行向量,采用齐次坐标法,即每个顶点坐标增加一个相同的分量1作为矩阵的一行,这样就可以用矩阵表示图形了。如:
点A(1,-1),增加一个分量1,将其作为一个矩阵的行向量;
以此类推,所以这个图形可以用矩阵来表示,即:
如下图所示:
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
点A(x,y),则点A的矩阵为;当点A的矩阵乘以平移变换矩阵可以得到平移后点的矩阵为:
;
如下图所示:
缩放变换矩阵为:;
矩阵中的m和n分别是x轴和y轴方向的缩放因子。
点A(x,y),则点A的矩阵为;当点A的矩阵乘以缩放变换矩阵可以得到缩放后点的矩阵为:
;
如下图所示:
旋转变换矩阵为:;
矩阵中的θ是图形绕坐标原点逆时针旋转的角度。
点A(x,y),则点A的矩阵为;当点A的矩阵乘以旋转变换矩阵可以得到旋转后点的矩阵为:
;
图形关于Y轴的对称变换:
图形关于原点的对称变换:
关于X轴对称变换矩阵为:;
关于Y轴对称变换矩阵为:;
关于原点对称变换矩阵为:;
点A(x,y),则点A的矩阵为;当点A的矩阵乘以对称变换矩阵可以得到旋转后点的矩阵为:
关于X轴对称变换:;
关于Y轴对称变换:;
关于原点对称变换:;
图形关于Y轴方向的错切变换,各点的横坐标不变:
关于X轴错切变换矩阵为:;
关于Y轴错切变换矩阵为:;
c是错切变换因子。
点A(x,y),则点A的矩阵为;当点A的矩阵乘以错切变换矩阵可以得到错切后点的矩阵为:
关于X轴错切变换:;
关于Y轴错切变换:;
通过组合变换可以对图形实现“全方位”“无死角”的改变。
下面由一个例子来介绍一下组合变换:
如上图所示:
已知点M(3,-1),平面图形的各个顶点分别为A(-1,2)、B(1,4)、C(3,3)、D(1,2)、E(2,1)。
将图形绕M点顺时针旋转90度。 然后再以M点为缩放中心,缩放因子为2进行缩放。最后求新图形的各顶点坐标。
旋转变换矩阵为:;
(矩阵中的θ是图形绕坐标原点逆时针旋转的角度。)
上面明确说明旋转矩阵是图形绕坐标原点,逆时针旋转的角度。
所以我们需要将M点先平移到坐标原点(最后还需反向平移这个向量)
1. 将M点平移到坐标原点:
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
点M(3,-1),原点O(0,0),所以平移向量为:
根据平移向量可以求得到平移矩阵为:=
平移后为:
2. 将图形绕原点顺时针旋转-90度:
旋转变换矩阵为:;
(矩阵中的θ是图形绕坐标原点逆时针旋转的角度。)
所以可以求出旋转矩阵为:=
顺时针旋转-90度后为:
3. 以原点为中心,缩放因子为2缩放图形:
缩放变换矩阵为:;
矩阵中的m和n分别是x轴和y轴方向的缩放因子。
所以可以求出旋转矩阵为:=
缩放后的图形变化为:
4. 将图形反向平移(平移向量为OM,第一步的反向平移):
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
点M(3,-1),原点O(0,0),所以平移向量为:
根据平移向量可以求得到平移矩阵为:=
平移后为:
=
新图形的顶点坐标依次是A′(9,7), B′(13,3), C′(11,-1), D′(9,3), E′(7,1)
原视频地址如下:http://v.baidu.com/watch/8701412763189445726.html
另外推荐两位大神的文章:
矩阵在Android的应用(爱哥):http://blog.csdn.net/aigestudio/article/details/41799811
矩阵在Unity中的应用(墨半成霜):http://blog.csdn.net/mobanchengshuang/article/details/41552557
几何图形的矩阵表示:
我们把每个顶点坐标看成一个行向量,采用齐次坐标法,即每个顶点坐标增加一个相同的分量1作为矩阵的一行,这样就可以用矩阵表示图形了。如:
点A(1,-1),增加一个分量1,将其作为一个矩阵的行向量;
以此类推,所以这个图形可以用矩阵来表示,即:
平移变换:
如果平移向量是(a, b),点(x, y)平移后的点为(x+a, y+b)。如下图所示:
平移变换矩阵:
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
例子:
图形矩阵乘以平移向量的矩阵就可以得出平移后的图形矩阵。例如:点A(x,y),则点A的矩阵为;当点A的矩阵乘以平移变换矩阵可以得到平移后点的矩阵为:
;
缩放变换:
缩放中心是坐标原点,点(x,y)缩放到点(my,ny),m、n是缩放因子。如下图所示:
缩放变换矩阵:
缩放变换矩阵为:;
矩阵中的m和n分别是x轴和y轴方向的缩放因子。
例子:
图形矩阵乘以缩放因子矩阵就可以得出缩放后的图形矩阵。例如:点A(x,y),则点A的矩阵为;当点A的矩阵乘以缩放变换矩阵可以得到缩放后点的矩阵为:
;
旋转变换:
旋转中心是坐标原点。旋转角度是β。如下图所示:
旋转变换矩阵:
旋转变换矩阵为:;
矩阵中的θ是图形绕坐标原点逆时针旋转的角度。
例子:
图形矩阵乘以旋转角度矩阵就可以得出旋转后的图形矩阵。例如:点A(x,y),则点A的矩阵为;当点A的矩阵乘以旋转变换矩阵可以得到旋转后点的矩阵为:
;
对称变换:
图形关于X轴的对称变换:图形关于Y轴的对称变换:
图形关于原点的对称变换:
对称变换矩阵:
关于X轴对称变换矩阵为:;
关于Y轴对称变换矩阵为:;
关于原点对称变换矩阵为:;
例子:
图形矩阵乘以对称变换矩阵就可以得出对称变换后的图形矩阵。例如:点A(x,y),则点A的矩阵为;当点A的矩阵乘以对称变换矩阵可以得到旋转后点的矩阵为:
关于X轴对称变换:;
关于Y轴对称变换:;
关于原点对称变换:;
错切变换:
图形关于X轴方向的错切变换,各点的纵坐标不变:图形关于Y轴方向的错切变换,各点的横坐标不变:
错切变换矩阵:
关于X轴错切变换矩阵为:;
关于Y轴错切变换矩阵为:;
c是错切变换因子。
例子:
图形矩阵乘以对称变换矩阵就可以得出错切变换后的图形矩阵。例如:点A(x,y),则点A的矩阵为;当点A的矩阵乘以错切变换矩阵可以得到错切后点的矩阵为:
关于X轴错切变换:;
关于Y轴错切变换:;
组合变换:
顾名思义,组合变换就是上面所介绍的平移变换,缩放变换,旋转变换, 对称变换,错切变换的相互作用之后产生的变换。通过组合变换可以对图形实现“全方位”“无死角”的改变。
下面由一个例子来介绍一下组合变换:
题目:
如上图所示:
已知点M(3,-1),平面图形的各个顶点分别为A(-1,2)、B(1,4)、C(3,3)、D(1,2)、E(2,1)。
将图形绕M点顺时针旋转90度。 然后再以M点为缩放中心,缩放因子为2进行缩放。最后求新图形的各顶点坐标。
分析:
通过之前的学习,我们知道这是一个旋转变换。旋转变换矩阵为:;
(矩阵中的θ是图形绕坐标原点逆时针旋转的角度。)
上面明确说明旋转矩阵是图形绕坐标原点,逆时针旋转的角度。
所以我们需要将M点先平移到坐标原点(最后还需反向平移这个向量)
1. 将M点平移到坐标原点:
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
点M(3,-1),原点O(0,0),所以平移向量为:
根据平移向量可以求得到平移矩阵为:=
平移后为:
2. 将图形绕原点顺时针旋转-90度:
旋转变换矩阵为:;
(矩阵中的θ是图形绕坐标原点逆时针旋转的角度。)
所以可以求出旋转矩阵为:=
顺时针旋转-90度后为:
3. 以原点为中心,缩放因子为2缩放图形:
缩放变换矩阵为:;
矩阵中的m和n分别是x轴和y轴方向的缩放因子。
所以可以求出旋转矩阵为:=
缩放后的图形变化为:
4. 将图形反向平移(平移向量为OM,第一步的反向平移):
平移变换矩阵为:;
矩阵中的ab表示平移向量(a,b)。
点M(3,-1),原点O(0,0),所以平移向量为:
根据平移向量可以求得到平移矩阵为:=
平移后为:
结果:
P’= P · ···=
新图形的顶点坐标依次是A′(9,7), B′(13,3), C′(11,-1), D′(9,3), E′(7,1)
最后:
这篇文章中的内容都是我从一个视频中截图来的,费这么大劲主要是为了方便以后回顾和复习。原视频地址如下:http://v.baidu.com/watch/8701412763189445726.html
另外推荐两位大神的文章:
矩阵在Android的应用(爱哥):http://blog.csdn.net/aigestudio/article/details/41799811
矩阵在Unity中的应用(墨半成霜):http://blog.csdn.net/mobanchengshuang/article/details/41552557
相关文章推荐
- “生动”讲解——矩阵的空间变换
- “生动”讲解——矩阵的空间变换
- “生动”讲解——矩阵的空间变换
- 关于 法向量 的世界空间变换矩阵
- 渲染流水线-透视投影矩阵 透视除法 空间裁剪 视口变换 数学原理理解
- D3D空间变换和矩阵作用
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- Unity3d 空间变换中齐次矩阵的w小秘密
- Unity Shader入门精要笔记(四):矩阵与空间变换
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- android 图形变换矩阵讲解
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 矩阵的空间变换
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- OpenGL 的空间变换(上):矩阵在空间几何中的应用
- 2D平面中关于矩阵(Matrix)跟图形变换的讲解
- 8.6.3 矩阵与空间变换
- 空间坐标变换的矩阵表示法
- Problem F: C语言习题 矩阵元素变换