Canvas 类的所有方法都使用 float 类型的坐标。但为什么?据我所知,此坐标表示要指向显示器的像素数。像素可以分离吗?
最佳答案
一些设备支持亚像素精度。
在标准 LCD 屏幕上,一个像素实际上是三个子像素,一个红色、一个绿色、一个蓝色。 (红绿蓝)。亚像素级别的渲染允许更清晰、更好看的图像。
作为一个粗略的例子,不是在屏幕上指定一个白色“RGB”像素的位置,而是有机会通过实际使用屏幕。
考虑屏幕上的三个 RGB 像素。考虑通过点亮像素二上的 R、G 和 B 子像素来显示白色像素:
one two three
----- ----- -----
_ _ _ R G B _ _ _
并将其与子像素渲染进行比较:
one two three
----- ----- -----
_ _ B R G _ _ _ _
_ _ _ R G B _ _ _
_ _ _ _ G B R _ _
对于人眼来说,所有这些看起来都像一个白色像素,但亚像素渲染允许更好地控制位置。这种仅对部分像素点亮,并点亮相邻像素部分的技术在“线条平滑”(抗锯齿)方面非常有效。
除了传统的 RGB 条纹 LCD 之外,还有其他屏幕技术。例如,考虑各种 RGBG Amoled 格式屏幕(三星 Galaxy 显示器)。
关于java - 为什么像素是 float 的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22943393/