j_m*_*lly 2 iphone objective-c ios4 ios
从技术上讲,x,y,width和height表示与像素相关的一组尺寸.我不能有200.23422像素,为什么他们使用浮点数而不是整数?
决议独立性。
您希望尽可能准确地保持 UI 的数学表示,仅在您实际需要绘制到输出设备时才转换为像素 int 值(即使如此,也不是真的)。这样您就可以对视图应用任意数量的转换,并且仍然获得准确的结果。
此外,还可以渲染线条,例如,以半像素宽度甚至更少的宽度呈现可见的结果 - 系统使用智能抗锯齿来显示细线。
这与矢量绘图几十年来一直使用的原理相同(Adobe 的 PostScript、SVG 等)。事实上,Quartz 基于 PDF,它是 PostScript 的现代版本。NeXT 在当时使用了 Display PostScript,当时人们认为它非常具有革命性。
浮动的原因是现代CPU和GPU a被优化为并行处理许多浮点数.这适用于iOS和Mac.
使用Quartz,您不会处理单个像素,但您绘制的所有内容始终是抗锯齿的.如果您有一个坐标1.0,1.0,那么这实际上会为坐标原点的2x2像素添加颜色.
这就是为什么如果在整数坐标处绘制,可能会出现模糊的线条.在非视网膜上,你可以将偏移量减少0.5.从技术上讲,你需要偏移0.25才能在Retina显示屏上绘制精确的像素.虽然它并没有那么重要,因为你在那个像素大小上并没有真正看到它.
简而言之:您不会直观地处理像素,但图形引擎会为您浮点坐标和像素之间的映射.
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |