IOS绘图
来源:互联网 发布:nginx反向代理跨域 编辑:程序博客网 时间:2024/06/05 18:37
CGContextRef context = UIGraphicsGetCurrentContext();可以获得图形上下文。
CGContextMoveToPoint、CGContextAddLineToPoint两个函数是构建描绘路径。
CGContextClosePath(context);函数是闭合描绘路径。
CGContextStrokePath函数是为闭合路径描边。
[[UIColor blackColor] setStroke]设置描边的颜色。
[[UIColor redColor] setFill]设置要填充颜色。
CGContextDrawPath(context, kCGPathFillStroke);设置描绘路径方式。常用的还有:
kCGPathFill和kCGPathStroke
运用变换
变换(transformation)修改了图形上下文中绘制图形的方式。可以通过移动、旋转或缩放实现变换。
Quartz提供了多种形式的变换,其中主要:CTM(当前变换矩阵)变换和仿射(affine)变换。
CTM(current transformation matrix)变换,这种变换比较简单,函数有:
CGContextRotateCTM,旋转坐标
CGContextScaleCTM,缩放坐标
CGContextTranslateCTM,移动原点
移动变换
CGContextTranslateCTM (myContext, 100, 50)
从对象角度沿着x轴正向移动100单位,沿着y轴正向移动50单位。
旋转变换
static inline double radians (double degrees) {return degrees * M_PI/180;}
CGContextRotateCTM (myContext, radians(–45.));
从对象角度:
在Quartz坐标下正数为逆时针旋转,负数为顺时针旋转。
在UIKit坐标下正数为顺时针旋转,负数为逆时针旋转。
缩放变换
CGContextScaleCTM (myContext, .5, .75)
- (void)drawRect:(CGRect)rect { //1.获取图形上下文 CGContextRef ctx=UIGraphicsGetCurrentContext(); //2.绘图 //2.a 画一条直线 //2.a.1创建一条绘图的路径 //注意:但凡通过Quartz2D中带有creat/copy/retain方法创建出来的值都必须要释放 CGMutablePathRef path=CGPathCreateMutable(); //2.a.2把绘图信息添加到路径里 CGPathMoveToPoint(path, NULL, 20, 20); CGPathAddLineToPoint(path, NULL, 200, 300); //2.a.3把路径添加到上下文中 //把绘制直线的绘图信息保存到图形上下文中 CGContextAddPath(ctx, path); //2.b画一个圆 //2.b.1创建一条画圆的绘图路径(注意这里是可变的,不是CGPathRef) CGMutablePathRef path1=CGPathCreateMutable(); //2.b.2把圆的绘图信息添加到路径里 CGPathAddEllipseInRect(path1, NULL, CGRectMake(50, 50, 100, 100)); //2.b.3把圆的路径添加到图形上下文中 CGContextAddPath(ctx, path1); //3.渲染 CGContextStrokePath(ctx); //4.释放前面创建的两条路径 //第一种方法 CGPathRelease(path); CGPathRelease(path1); //第二种方法 // CFRelease(path); }
- IOS 绘图
- iOS绘图
- ios绘图
- iOS绘图
- ios 绘图
- iOS 绘图
- ios绘图
- iOS 绘图
- iOS 绘图
- IOS绘图
- iOS 绘图
- iOS绘图
- ios 绘图
- ios绘图
- ios绘图
- iOS绘图
- iOS绘图
- IOS绘图
- 如何检查 Android 应用的内存使用情况
- 图像处理中的傅立叶变换
- Javascript定义类(class)的三种方法
- android Handler/Looper 总结
- xcode7以上UIWebView报错:The resource could not be loaded
- IOS绘图
- C++设计模式[十]享元模式
- angularjs中的$watch,对对象进行监视
- java noi读取文件
- 剑指offer(六)
- 专业级的PHP IDE——Zend Studio正式发布v13[附下载]
- 开发插曲:注解的使用
- CSS3 border-radius属性
- 如何为我们的Snappy Ubuntu应用编译并打包Snap(1)