通过重复绘制透明矩形逐渐褪色

Sza*_*lcs 5 java processing alphablending colors

这是一个关于Processing.org的问题。

我通过在每个帧的视图上绘制一个半透明的白色矩形来淡出以前绘制的对象。

然而,它们似乎永远不会褪色到完全白色。褪色在一些明显的非白色灰色阴影处有一个固定点。尝试淡入黑色时也会发生同样的事情。

这是 alpha 混合如何在处理中工作的标准功能吗?有没有一种相对简单的方法来实现完全白色的背景(给定足够的步骤)?

我想象得到的颜色将是混合颜色的线性组合,这意味着限制应该是白色。也许非白色固定点是四舍五入的人工制品?

说明问题的示例代码:

void setup() {
  size(300,300);
  background(0);
  noStroke();
  frameRate(15);
}

void draw() {
  fill(255,10);
  rect(0,0,width,height);
  fill(255);
  rect(0,0,50,50); // for comparison to white
}
Run Code Online (Sandbox Code Playgroud)

编辑:添加了java标签,希望得到更多关注

Rob*_*bin 0

我不确定发生了什么,看起来你应该是对的,如果绘制的矩形数量 * 这些矩形的 alpha 值大于 255,它应该是完全白色的。无论如何,为什么不重新绘制每一帧(就像我通过将背景(0)线移动到绘制循环中所做的那样)然后增加你的alpha值。我认为这条道路会让你在未来对动画有更多的控制。

int a;

void setup() {
  size(300,300);
  noStroke();
  frameRate(15);
  a = 0;
}

void draw() {
  background(0);
  a += 1;
  if(a<=255){
    fill(255,a);
  }
  rect(0,0,width,height);
  fill(255);
  rect(0,0,50,50); // for comparison to white
}
Run Code Online (Sandbox Code Playgroud)