1.坐标变换的数学基础
1.1 坐标系
数学中我们使用的是笛卡儿坐标系,如下图所示:
X轴正方向向右,Y轴正方向向上,原点O,坐标点A(x,y)。
1.2 仿射变换
已知坐标点A,变换后新坐标系中坐标为B ,则有:
B= AM
A为1*3的矩阵[x,y,1]
B为 1* 3的矩阵[x’,y’,1]
M为3*3仿射矩阵
所以AM=B可以写成:
展开后得到:
以下是常用的变换矩阵:
单位矩阵:
展开后得:
平移矩阵:
展开后得:
缩放矩阵:
展开后得:
旋转矩阵:
展开后得:
1.3 坐标变换类型
模型变换: 坐标系固定不动,变换坐标系中的模型
坐标轴变换:坐标系中模型固定不动, 变换坐标系,相对于新坐标系构造的变换矩阵和模型变换矩阵是一样的
如上图所示,A为原坐标系C中坐标,A'为新坐标系中C'坐标,在模型变换中新坐标系和原坐标系重叠在一起
二种变换方式A->A'变换矩阵都是相同的.
2. IOS中坐标系
2.1 IOS中包含UIKit坐标系(X轴正方向向右,Y轴正方向向下)和标准的Quartz 2D绘图坐标系(X轴正方向向右,Y轴正方向向上)
使用相关API时要仔细阅读文档,弄清坐标系类型,原点位置等.