处理 3 - 如何设置默认不透明度

Processing 3 - how to set default opacity

这让我发疯。这是我的设置:

background(0);
stroke(255,255,255,255);

当我把一个像素拿出来,然后查询同一个像素,颜色不匹配:

point(2,2);
int x = get(2,2);
print(red(x));
print(green(x));
print(blue(x));

我得到的是:223 223 223 为什么我得到的是 223 而不是 255?

发生这种情况是因为默认情况下,Processing 启用 anti-aliasing。这会增加形状(包括点)的模糊度和透明度。通常这是一件好事,因为它使您的绘图看起来更好。

但是如果您因为需要精确的颜色而想禁用 anti-aliasing,那么只需在绘制之前调用 noSmooth() 函数:

noSmooth();
background(0);
stroke(255,255,255,255);
point(2,2);
int x = get(2,2);
print(red(x));
print(green(x));
print(blue(x));

这会打印出 255 正如您所期望的那样。可以在 the reference.

中找到更多信息