问题描述
从技术上讲,x、y、宽度和高度表示一组与像素相关的维度.一世不能有 200.23422 像素那么为什么他们使用浮点数而不是整数?
Technically the x, y, width, and height represent a set of dimensions that relate to pixels. I can't have 200.23422 pixels so why do they use floats instead of ints?
推荐答案
浮点数的原因是现代 CPU 和 GPU 经过优化,可以并行处理许多浮点数.iOS 和 Mac 都是如此.
The reason for the floats are that modern CPUs and GPUs a are optimized to work with many floating point numbers in parallel. This is true for iOS as well as Mac.
使用 Quartz,您无需处理单个像素,但您绘制的所有内容始终是抗锯齿的.当您有一个坐标 1.0, 1.0 时,这实际上为坐标原点的 2x2 像素添加了颜色.
With Quartz you don't address individual pixels, but everything you draw is always antialiased. When you have a coordinate 1.0, 1.0 then this actually adds color to the 2x2 pixels at the coordinate origin.
这就是为什么在整数坐标处绘制时可能会出现线条模糊的原因.在非视网膜上,您必须绘制 0.5 的偏移量.从技术上讲,您需要偏移 0.25 才能在 Retina 显示器上绘制精确的像素.虽然在那里它并不重要,因为在那个像素大小上你真的看不到它了.
This is why you might get blurry lines if you draw at integer coordinates. On non-retina you habe to draw offset by 0.5. Technically you would need to offset by 0.25 to draw exact pixels on Retina displays. Though there it does not really matter that much because you don't really see it any more at that pixel size.
长话短说:您不会直接处理像素,但图形引擎会为您在浮点坐标和像素之间映射.
Long story short: you don't address pixels direcrly, but the Graphics engine maps between floating point coordinates and pixels for you.
这篇关于为什么 UIView 框架是由浮动组成的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)