iOS讲义总结
在iOS中,Quartz 2D提供了坐标变换支持。
一、特殊的坐标变换(平移、缩放、旋转)
1. - void CGContextTranslateCTM ( CGContextRef c, CGFloat tx, CGFloat ty ):平移坐标系统。
该方法相当于把原来位于 (0, 0) 位置的坐标原点平移到 (tx, ty) 点。在平移后的坐标系统上绘制图形时,所有坐标点的 X 坐标都相当于增加了 tx,所有点的 Y 坐标都相当于增加了 ty。
2. - void CGContextScaleCTM ( CGContextRef c, CGFloat sx, CGFloat sy ):缩放坐标系统。
该方法控制坐标系统水平方向上缩放 sx,垂直方向上缩放 sy。在缩放后的坐标系统上绘制图形时,所有点的 X 坐标都相当于乘以 sx 因子,所有点的 Y 坐标都相当于乘以 sy 因子。
3. - void CGContextRotateCTM ( CGContextRef c, CGFloat angle ):旋转坐标系统。
该方法控制坐标系统旋转 angle 弧度。在缩放后的坐标系统上绘制图形时,所有坐标点的 X、Y 坐标都相当于旋转了 angle弧度之后的坐标。
为了让开发者在进行坐标变换时无须计算多次坐标变换后的累加结果,Quartz 2D还提供了如下两个方法来保存、恢复绘图状态。
- void CGContextSaveGState ( CGContextRef c ):保存当前的绘图状态。
- void CGContextRestoreGState ( CGContextRef c ):恢复之前保存的绘图状态

本文介绍了iOS中Quartz 2D的坐标变换,包括CGContextTranslateCTM的平移、CGContextScaleCTM的缩放和CGContextRotateCTM的旋转操作,以及如何通过CGAffineTransform进行更复杂的坐标变换和复合变换。此外,还提到了对CGPoint、CGSize、CGRect的变换以及对UIView的坐标变换应用。
最低0.47元/天 解锁文章
516

被折叠的 条评论
为什么被折叠?



