UIView DrawRect中的坐标转换基础

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时要仔细阅读文档,弄清坐标系类型,原点位置等.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值