如何从数组中绘制出具有不同不透明度的图形?

问题描述 投票:0回答:1

我正在尝试使用数组绘制这5个矩形,但是它们具有相同的不透明度...但是他们应该有所不同,但我现在不为什么?有人可以帮我吗?先感谢您 :)塞巴斯蒂安

PGraphics[] pgArray = new PGraphics[5];

void setup() {
  size(500, 500);
  background(255);

  for (int i = 0; i<pgArray.length; i++) {
    pgArray[i] = createGraphics(500, 500);
  }
}

void draw() {

  for (int i = 0; i < pgArray.length; i++) {
    pgArray[i].beginDraw();
    pgArray[i].fill(0, (255/pgArray.length)*i+1);
    pgArray[i].rect(20*i, 20*i, 50, 50);
    pgArray[i].endDraw();
  }

  for(int i = 0; i < pgArray.length; i++){
    image(pgArray[i],0,0);
  } 
}
arrays processing opacity pgraphics
1个回答
0
投票

您的代码不会清除帧之间的PGraphics对象。由于不透明度是可加的,因此矩形将在几帧内达到完全不透明,因为您将它们绘制在彼此之上。

您可以

  • 将矩形绘图循环移动到setup(),因此它只能运行一次。

  • pgArray[i].clear();之后插入对pgArray[i].beginDraw();的呼叫。
© www.soinside.com 2019 - 2024. All rights reserved.