矩阵变换学习笔记

二维矩阵变换:

我们把每个点坐标A(x, y)看成一个行向量a(x, y),采用齐次坐标法,即每个顶点坐标增加一个相同的分量1作为矩阵的一行,即(x,y,1)

1.平移:

平移向量P为(a,b),点A(x,y)平移后变为A'(x + a, y + b)

点A的矩阵为[x, y, 1],平移变换矩阵为
\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ a & b & 1 \end{matrix} \right]

点A的矩阵乘以平移变换矩阵得到平移后的矩阵为

\begin{matrix} A & 平移矩阵 & & 平移后的矩阵A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ a & b & 1 \\ \end{array}\right] & = & \left[\begin{array}{rr} x + a & y + b & 1 \end{array}\right] \end{matrix}

2.旋转

旋转中心是坐标原点。旋转角度是β。
矩阵中的θ是图形绕坐标原点逆时针旋转的角度。
旋转变换矩阵
\left[ \begin{matrix} cosθ & sinθ & 0 \\ -sinθ & cosθ & 0 \\ 0 & 0 & 1 \end{matrix} \right]
点A的矩阵[x, y, 1]乘以旋转矩阵得到矩阵A'
\begin{matrix} A & 旋转矩阵 & & 旋转后的矩阵A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ & sinθ & 0 \\ -sinθ & cosθ & 0 \\ 0 & 0 & 1 \end{array}\right] & = & \left[\begin{array}{rr} xcosθ - ysinθ & xsinθ + ycosθ & 1 \end{array}\right] \end{matrix}

3.缩放

缩放中心是坐标原点,点(x,y)缩放到点(my,ny),m、n是缩放因子。
缩放变换矩阵:
\left[ \begin{matrix} m & 0 & 0 \\ 0 & n & 0 \\ 0 & 0 & 1 \end{matrix} \right]
点A(x,y),则点A的矩阵为[x, y ,1];当点A的矩阵乘以缩放变换矩阵可以得到缩放后点的矩阵为:
\begin{matrix} A & 旋转矩阵 & & 旋转后的矩阵A'\\ \left[\begin{array}{rr} x & y & 1 \end{array}\right] & \left[\begin{array}{rr} m & 0 & 0 \\ 0 & n & 0 \\ 0 & 0 & 1 \end{array}\right] & = & \left[\begin{array}{rr} mx & ny & 1 \end{array}\right] \end{matrix}

4.对称
(1)x轴对称

A(x,y) --> A'(x, -y)

对称矩阵

\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(2) y轴对称

A(x, y) --> A'(-x, y)
对称矩阵
\left[ \begin{matrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(3)原点对称

A(x, y) --> A'(-x, -y)
对称矩阵
\left[ \begin{matrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

5.错切变换

(1)图形关于X轴方向的错切变换,各点的纵坐标不变:
A(x, y) --> A'(x + cy , y)
关于X轴错切变换矩阵为:
\left[ \begin{matrix} 1 & 0 & 0 \\ c & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

(2)图形关于Y轴方向的错切变换,各点的横坐标不变:
A(x, y) --> A'(x , y + cx)
关于X轴错切变换矩阵为:
关于Y轴错切变换矩阵为:
\left[ \begin{matrix} 1 & c & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} \right]

6.组合变换

组合变换就是上面所介绍的平移变换,缩放变换,旋转变换, 对称变换,错切变换的相互作用之后产生的变换。

所有的图形变换都是基本变换的组合,这样图形变换就容易多了

参考:
https://blog.csdn.net/a396901990/article/details/44905791

三维矩阵变换

对三维空间的点P=[X Y Z],采用规范齐次坐标则与二维情况类似

1.平移变换

平移向量P为(tx,ty,tz),点A(x,y,z)平移后变为A'(x + tx, y + ty,z + tz)
点A的矩阵为[x, y, z,1],平移变换矩阵为
\left[ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1& 0\\ tx & ty &tz & 1\\ \end{matrix} \right]
点A的矩阵乘以平移变换矩阵得到平移后的矩阵为
\begin{matrix} A & 平移矩阵 & & 平移后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ tx & ty & tz & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x + tx & y + ty & z + tz & 1 \end{array}\right] \end{matrix}

2.旋转

矩阵中的θ是图形绕坐标轴逆时针旋转的角度。

(1)绕z轴旋转

A(x,y,z)旋转后变为A'(xcosθ - ysinθ, xsinθ + ycosθ, z)
旋转变换矩阵
\left[ \begin{matrix} cosθ & sinθ & 0 & 0\\ -sinθ & cosθ & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]

点A的矩阵乘以旋转变换矩阵得到旋转后的矩阵为
\begin{matrix} A & 绕z轴旋转矩阵 & & 旋转后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ & sinθ & 0 & 0\\ -sinθ & cosθ & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xcosθ - ysinθ & xsinθ + ycosθ & z & 1 \end{array}\right] \end{matrix}

(2)绕x轴旋转

A(x,y,z)旋转后变为A'(x, ycosθ - zsinθ, ysinθ + zcosθ)
旋转变换矩阵
\left[ \begin{matrix} 1& 0 & 0 & 0\\ 0 & cosθ & sinθ & 0\\ 0 & -sinθ & cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
点A的矩阵乘以旋转变换矩阵得到旋转后的矩阵为
\begin{matrix} A & 绕z轴旋转矩阵 & & 旋转后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & cosθ & sinθ & 0\\ 0 & -sinθ & cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & ycosθ - zsinθ & ysinθ + zcosθ & 1 \end{array}\right] \end{matrix}

(3)绕y轴旋转

A(x,y,z)旋转后变为A'(xcosθ + zsinθ,y, zcosθ - xsinθ)
旋转变换矩阵
\left[ \begin{matrix} cosθ& 0 & -sinθ & 0\\ 0 & 1 & 0 & 0\\ sinθ & 0& cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]
点A的矩阵乘以旋转变换矩阵得到旋转后的矩阵为
\begin{matrix} A & 绕y轴旋转矩阵 & & 旋转后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} cosθ& 0 & -sinθ & 0\\ 0 & 1 & 0 & 0\\ sinθ & 0& cosθ& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xcosθ + zsinθ & y & zcosθ - xsinθ & 1 \end{array}\right] \end{matrix}

3.缩放
(1)局部缩放

相对坐标原点的比例变换
A(x,y,z)旋转后变为A'(xSx, ySy, zSz), Sx, Sy, Sz为缩放因子
缩放变换矩阵
\left[ \begin{matrix} Sx& 0 & 0 & 0\\ 0 & Sy & 0 & 0\\ 0 & 0& Sz& 0\\ 0 & 0 & 0 & 1\\ \end{matrix} \right]

点A的矩阵乘以缩放变换矩阵得到旋转后的矩阵为
\begin{matrix} A & 缩放矩阵 & & 缩放后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} Sx& 0 & 0 & 0\\ 0 & Sy & 0 & 0\\ 0 & 0& Sz& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} xSx & ySy & zSz & 1 \end{array}\right] \end{matrix}

(2)整体缩放

缩放矩阵为
\left[ \begin{matrix} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & s\\ \end{matrix} \right]
点A的矩阵乘以缩放变换矩阵得到旋转后的矩阵为
\begin{matrix} A & 缩放矩阵 & & 缩放后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & s\\ \end{array}\right] & = & \left[\begin{array}{rr} x/s & y/s & z/s & 1 \end{array}\right] \end{matrix}

4.对称变换
(1)关于对称平面变换
1.1关于xoy平面对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & y & -z & 1 \end{array}\right] \end{matrix}

1.2关于xoz平面对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & -y & z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & -y & z & 1 \end{array}\right] \end{matrix}

1.3关于yoz平面对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & y & z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & y & z & 1 \end{array}\right] \end{matrix}

(2)关于对称轴变换
2.1关于x轴对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} x & -y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} 1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} x & -y & -z & 1 \end{array}\right] \end{matrix}

2.2关于y轴对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & y & -z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0& -1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & y & -z & 1 \end{array}\right] \end{matrix}

2.3关于z轴对称变换

\begin{matrix} \left[\begin{array}{rr} x' & y' & z' & 1 \end{array}\right] & = & \left[\begin{array}{rr} -x & -y & 1z & 1 \end{array}\right] \end{matrix}

\begin{matrix} T & = & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] \end{matrix}

\begin{matrix} A & 变换矩阵 & & 变换后的矩阵A'\\ \left[\begin{array}{rr} x & y & z & 1 \end{array}\right] & \left[\begin{array}{rr} -1& 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0& 1& 0\\ 0 & 0 & 0 & 1\\ \end{array}\right] & = & \left[\begin{array}{rr} -x & -y & z & 1 \end{array}\right] \end{matrix}

三维变换矩阵的功能分块

\left[ \begin{array}{ccc|c} a11& a21 & a31 & Px\\ a12 & a22 & a32 & Py\\ a13 & a23& a33& Pz\\ \hline tx & ty & tz & s\\ \end{array} \right]
左下角三维平移变换部分,左上角三维线性变换部分,右上角透视变换部分,右下角整体比例因子

任何三维变换都可以转换为基本三维变换的组合
比如绕任意轴旋转,可通过平移,旋转等基本三维变换转换为绕某坐标轴旋转;

参考:
https://blog.csdn.net/piaoxuezhong/article/details/70171525

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容