码迷,mamicode.com
首页 > 其他好文 > 详细

常用几何变换矩阵

时间:2015-04-24 22:49:51      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:几何变换   三位变换   

参考: http://wenku.baidu.com/view/193f8a8fbceb19e8b8f6baf6.html

 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

 

常用的几何变换矩阵:平移(translate),旋转(rotate),缩放(scale),以及简单的复合,如绕指定点旋转、缩放

关于矩阵复合时的乘法参考 http://blog.csdn.net/chunyexiyu/article/details/44671737 - Matrix矩阵乘法

 

二维变换矩阵:

 

二维平移 vec(Tx, Ty)

1       0       Tx

0       1       Ty

0       0       1

 

二维旋转:

cos@        -sin@        0

sin@         cos@        0

1       1       1

 

二维放大

Sx     0       0

0       Sy     0

0       0       1

 

绕着顶点旋转(Xr, Yr)

cos@        -sin@        Xr(1-cos@) + YrSin@

sin@         cos@        Yr(1-cos@) – XrSin@

0       0       1

(变换步骤:平移到原点->旋转->平移恢复)

 

绕指定点放大(Xr,Yr)

Sx     0       Xr(1-Sx)

0       Sy     Yr(1-Sy)

0       0       1

(变换步骤:平移到原点->缩放->平移恢复)

 

三维变换矩阵:

平移Vec(Tx, Ty, Tz)

1       0       0       Tx

0       1       0       Ty

0       0       1       Tz

0       0       0       1

 

Z轴旋转

cos@        -sin@        0       0

sin@         cos@        0       0

0       0       1       0

0       0       0       1

 

X轴旋转

1       0       0       0

0       cos@        -sin@        0

0       sin@         cos@        0

0       0       0       1

 

Y轴旋转

cos@        0       sin@         0

0       1       0       0

-sin@        0       cos@        0

0       0       0       1

 

一般绕指定点(Xr, Yr, Zr)的三维旋转变幻步骤

1. 平移到原点

2. 旋转到某一坐标轴X|Y|Z

3. 绕坐标轴旋转

4. 旋转恢得-2的逆矩阵处理

5. 平移恢复-1的逆矩阵处理

三维缩放

Sx     0       0       0

0       Sy     0       0

0       0       Sz     0

0       0       0       1

 

绕任意点(Xr, Yr, Zr)为中心缩放

Sx     0       0       Xr(1-Sx)

0       Sy     0       Yr(1-Sy)

0       0       Sz     Zr(1-Sz)

0       0       0       1

(步骤:平移到原点->缩放->平移恢复)

 

错切,例如把一个矩阵错切为一个平行四边形

x为依赖轴

1       0       0       0

b       1       0       0

c       0       1       0

0       0       0       1

y为依赖轴

1       a       0       0

0       1       0       0

0       c       1       0

0       0       0       1

z轴为依赖轴

1       0       a       0

0       1       b       0

0       0       1       0

0       0       0       1

复合

1       a1     a2     0

b1     1       b2     0

c1     c2     1       0

0       0       0       1

 

对应OpenGL的几何变换函数

glTranslate/glRoate/glScale/glLoadIdentity/glLoadMatrix/glMarixMode

 

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

 

常用几何变换矩阵

标签:几何变换   三位变换   

原文地址:http://blog.csdn.net/chunyexiyu/article/details/45251719

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!