【问题标题】:Why is the point() function slightly transparent?为什么 point() 函数有点透明?
【发布时间】:2016-08-03 20:24:03
【问题描述】:

我正在运行这段代码:

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 的颜色),然后遍历窗口中的每个像素并绘制一个点在背景之上,所以我希望只看到灰色背景。

相反,我看到的是“略带绿色”或“略带红色”的窗口。也就是说,我可以通过灰点看到背景颜色。

看起来point() 函数正在绘制具有透明度的点,但我的描边颜色是200, 200, 200

如果我将调用 point() 更改为 rect(x, y, 1, 1),那么我会看到我所期望的纯灰色。

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

我是否缺少 point() 函数的内容?

【问题讨论】:

    标签: processing


    【解决方案1】:

    呃,我一发布问题就想到了这一点。问题是默认情况下这些点是抗锯齿的,这导致它们稍微透明。

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

    void setup(){
      noSmooth();
    }
    

    哦。如果有人有同样的问题,可以在the reference 找到更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 2015-06-26
      相关资源
      最近更新 更多