为什么point()函数稍微透明?

时间:2016-08-03 00:18:24

标签: processing

我正在运行此代码:

 
void draw() {

  if (mousePressed) {
    background(255, 0, 0);
  } else {
    background(0, 255, 0);
  }

  stroke(200, 200, 200);

  for (int x = 0; x < width; x++) {
    for (int y = 0; y < height; y++) {
      point(x, y);
    }
  }
}

我正在绘制红色或绿色背景,然后我将颜色设置为灰色(r,g和b为200的颜色)然后循环遍历窗口中的每个像素并在背景上绘制一个点,所以我希望只能看到灰色背景。

相反,我所看到的是&#34;略带绿色&#34;或者&#34;略带红色&#34;窗口。换句话说,我可以通过灰点看到背景颜色。

green and red showing through

看起来point()函数是绘制具有透明度的点,但我的笔触颜色为200, 200, 200

如果我将通话更改为point()rect(x, y, 1, 1),那么我会看到像我期望的那样坚实的灰色。

我在Processing 2.2.1和3.1.1中都看到了这个问题,但我在Processing.js中看不到它。

我错过了point()函数吗?

1 个答案:

答案 0 :(得分:1)

呃,我一发布这个问题就知道了。问题是,默认情况下,这些点是消除锯齿的,这会使它们略微透明。

 

noSmooth()调用setup()函数可以解决问题。

void setup(){
  noSmooth();
}

d&#39;哦。如果有人遇到同样的问题,可以在the reference找到更多信息。

相关问题