图形上下文的矩阵操作(平移-缩放-旋转)

Posted 小课桌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图形上下文的矩阵操作(平移-缩放-旋转)相关的知识,希望对你有一定的参考价值。

图形上下文的矩阵操作(旋转、缩放和平移)
CGContextRotateCTM:图形上下文旋转,以上下文的原点(左上角)为基准
CGContextScaleCTM:图形上下文的缩放,以上下文的原点(左上角)为基准
CGContextTranslateCTM:图形上下文的平移,以上下文的原(左上角)点为基准
 
注意:一定要在添加路径之前进行设置
 
下面贴出swift版代码:
 1 override func draw(_ rect: CGRect) {
 2         let context = UIGraphicsGetCurrentContext()
 3         
 4         // MARK: - 注意:矩阵操作一定要在添加路径之前设置
 5         
 6         // 旋转 - 逆时针旋转-M_PI_4(以原点为基准)
 7         // context?.rotate(by: CGFloat(-M_PI_4))
 8         
 9         // 平移 - 往左下角(以原点为基准)
10         // context?.translateBy(x: 50, y: 50)
11         
12         // 缩放 - 宽高各缩小一半(以原点为基准)
13         context?.scaleBy(x: 0.5, y: 0.5)
14         
15         let borderPath = UIBezierPath(rect: rect)
16         
17         let rectPath = UIBezierPath(rect: CGRect(x: 10, y: 10, width: 200, height: 200))
18         
19         let circlePath = UIBezierPath(ovalIn: CGRect(x: 10, y: 210, width: 200, height: 200))
20     
21         context?.addPath(borderPath.cgPath)
22         context?.addPath(rectPath.cgPath)
23         context?.addPath(circlePath.cgPath)
24         
25         context?.setLineWidth(2)
26         
27         context?.strokePath()
28     }

 

 

以上是关于图形上下文的矩阵操作(平移-缩放-旋转)的主要内容,如果未能解决你的问题,请参考以下文章

Matlab 图像平移旋转缩放镜像

Matlab 图像平移旋转缩放镜像

图像的几何变换—平移旋转镜像缩放剪切(原理+调用函数+像素操作)

图像的几何变换—平移旋转镜像缩放剪切(原理+调用函数+像素操作)

shader编程-二维空间中使用矩阵实现物体的旋转缩放平移变换(WebGL-Shader开发基础03)

shader编程-二维空间中使用矩阵实现物体的旋转缩放平移变换(WebGL-Shader开发基础03)