Quartz2D (5)旋转,缩放,平移
来源:互联网 发布:ac尼尔森 网购数据 编辑:程序博客网 时间:2024/06/05 19:28
- (void)drawRect:(CGRect)rect 2 { 3 //画四边形 4 //获取图形上下文 5 CGContextRef ctx=UIGraphicsGetCurrentContext(); 6 //矩阵操作 7 //注意点:设置矩阵操作必须要在添加绘图信息之前 8 //旋转45度 9 CGContextRotateCTM(ctx, M_PI_4);10 11 //绘图12 CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));13 //渲染14 CGContextStrokePath(ctx);15 }
效果:
关于旋转
1.旋转演示
view之所以能够显示视图,是因为它的上面有layer,将来图形也是渲染到layer上面。
且,旋转的时候是整个layer都旋转了,可以再画一个圆进行验证。
代码1(未旋转):
1 - (void)drawRect:(CGRect)rect 2 { 3 //获取图形上下文 4 CGContextRef ctx=UIGraphicsGetCurrentContext(); 5 //矩阵操作 6 //注意点:设置矩阵操作必须要在添加绘图信息之前 7 //旋转45度 8 // CGContextRotateCTM(ctx, M_PI_4); 9 10 //绘图11 //画四边形12 CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));13 //画一个圆14 CGContextAddEllipseInRect(ctx, CGRectMake(200, 200, 50, 50));15 //渲染16 CGContextStrokePath(ctx);17 }
效果:
- (void)drawRect:(CGRect)rect 2 { 3 //获取图形上下文 4 CGContextRef ctx=UIGraphicsGetCurrentContext(); 5 //矩阵操作 6 //注意点:设置矩阵操作必须要在添加绘图信息之前 7 //旋转45度 8 CGContextRotateCTM(ctx, M_PI_4); 9 10 //绘图11 //画四边形12 CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));13 //画一个圆14 CGContextAddEllipseInRect(ctx, CGRectMake(200, 200, 50, 50));15 //渲染16 CGContextStrokePath(ctx);17 }
效果:
缩放
方法:CGContextScaleCTM(<#CGContextRef c#>, <#CGFloat sx#>, <#CGFloat sy#>)
该方法接收三个参数(图形上下文,x方向的缩放比例,y方向上的缩放比例
代码示例:
1 - (void)drawRect:(CGRect)rect 2 { 3 //获取图形上下文 4 CGContextRef ctx=UIGraphicsGetCurrentContext(); 5 //矩阵操作 6 //注意点:设置矩阵操作必须要在添加绘图信息之前 7 //缩放,x方向缩放0.5倍,y方向缩放1.5倍 8 CGContextScaleCTM(ctx, 0.5, 1.5); 9 10 //绘图11 //画四边形12 CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));13 //画一个圆14 CGContextAddEllipseInRect(ctx, CGRectMake(200, 200, 50, 50));15 //渲染16 CGContextStrokePath(ctx);17 }
效果:
四、平移
方法: CGContextTranslateCTM(<#CGContextRef c#>, <#CGFloat tx#>, <#CGFloat ty#>)
该方法接收三个参数(图形上下文,x方向的偏移量,y方向上的偏移量)
代码示例:
1 - (void)drawRect:(CGRect)rect 2 { 3 //获取图形上下文 4 CGContextRef ctx=UIGraphicsGetCurrentContext(); 5 //矩阵操作 6 //注意点:设置矩阵操作必须要在添加绘图信息之前 7 //平移,x方向移动50,y方向移动100 8 CGContextTranslateCTM(ctx, 50, 100); 9 10 //绘图11 //画四边形12 CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));13 //画一个圆14 CGContextAddEllipseInRect(ctx, CGRectMake(200, 200, 50, 50));15 //渲染16 CGContextStrokePath(ctx);17 }
效果:
0 0
- Quartz2D (5)旋转,缩放,平移
- Quartz2D-平移,旋转,缩放
- Quartz2D-3(旋转、平移、缩放)
- Quartz2D——旋转、平移、缩放、剪切圆形图片
- 矩阵改变,平移,缩放,旋转(转)
- android动画(平移,旋转,缩放,透明度)
- opengl绘制桌子(平移、旋转、缩放)
- 交互式QGraphicsView(平移/缩放/旋转)
- iOS transform(平移、旋转、缩放)
- 交互式QGraphicsView(平移/缩放/旋转)
- 交互式QGraphicsView(平移/缩放/旋转)
- 交互式QGraphicsView(平移/缩放/旋转)
- Direct 平移,旋转,缩放
- Transform【缩放、平移、旋转】
- OpenGLES---平移/旋转/缩放
- Graphics平移缩放旋转
- 手势 平移 缩放 旋转
- canvas 平移 缩放 旋转
- linux top 解析-图解
- Django系列七:Django Nginx+uwsgi 安装配置
- iframe子页面调用父页面javascript函数的方法
- 前端重点知识整理(算法等基础知识)
- 免费的论文查重网站
- Quartz2D (5)旋转,缩放,平移
- codeforces 651B Beautiful Paintings (思路题)
- 网页取行情数据-2
- Unable to compile class for JSP 错误的解决过程。
- Java集合
- 清除过的浮动
- Mac OS X下搭建Python3.5.1+PyQt5.6开发环境
- 二叉搜索树的后序遍历序列
- 神奇的 BlocksKit (二)