iOS_CGContextSetLineWidth
来源:互联网 发布:移动数据流量套餐退订 编辑:程序博客网 时间:2024/06/05 08:56
之前在美术验收界面的时候, 提出了一个问题:
Q: 为什么要求1像素宽的一个矩形框似乎却变成了2,3个像素宽。仔细检查过代码后发现,的确设置了LineWidth为1,但绘制效果却并不如人愿。似乎在ios上绘制最低要2个像素的线宽。
W: 原因是因为默认情况下,锯齿显示,所以它显示为宽度 =2.0
这是 Quartz的抗锯齿机制. 有一种简单粗暴的解决办法就是关闭消除抗锯齿. 即:
CGContextSetShouldAntialias(context, NO );
但是显而易见的问题是取消抗锯齿会导致绘制效果变差。
而另外一种方案则比较取巧:将绘制调整到半像素坐标系上:
总结 :
所谓的线宽指的是给定路径的中心到两边的粗细,换句话是在路径的两边各绘制一半 .
//将
CGContextMoveToPoint(context,100.0, 100.0);
CGContextAddLineToPoint(context,100.0, 200.0);
//改为
CGContextMoveToPoint(context,100.5, 100.5);
CGContextAddLineToPoint(context,100.5,200.5);
0 0
- iOS_CGContextSetLineWidth
- Find Peak Element
- java 学习书籍推荐
- 数据传输中断和查询的区别
- 第十五周项目 3 (4) 两数和与差(用参数带回结果)
- 想写程序吗?远离你的计算机!
- iOS_CGContextSetLineWidth
- 一个Swing程序,用来判断一个URL页面内包含的好链接和坏链接数目
- 请求转发和请求包含
- 黑马程序员——Objective-C——点语法、变量的作用域
- socket.io搭建分布式Web推送服务器
- 调用系统蓝牙传送文件
- Android-手把手教你自定义view
- Codeforces 4D. Mysterious Present
- linux常用头文件详解