假设我们有以下代码:
void setup() {
background(0);
size(200, 200);
fill(255);
rect(75, 75, 50, 50);
}
void draw() {
fill(0, 2);
rect(0, 0, width, height);
}
即使在“永远等待”之后,白色50x50矩形仍然可见,尽管已经褪色。为什么fill(0, 2)
最终无法掩盖这一点?
我认为这个问题有两个方面:
答案 0 :(得分:2)
这是一篇解释正在发生的事情的帖子:http://processing.org/discourse/beta/num_1138703939.html
基本上,问题是Processing将颜色存储为int,但采用float参数。组合颜色时,Processing会将浮动数字舍入为整数。在你的情况下,你的颜色会被卡在63,63,63的值上,因为在这一点上,混合太小而不能产生在四舍五入后可以检测到的差异。
解决方案是从源头进行淡化,而不是在顶部覆盖alpha颜色。
答案 1 :(得分:-2)
默认背景颜色比分配给第一个矩形的颜色更暗,因此它会更快变黑。
- 为什么不最终淡化为黑色,因为为什么在白色顶部绘制另一个黑色矩形而不是最终删除它 (我正在考虑在每个上面放置有色窗户 其他;最终即使是最亮的光也不会发光,而且
- 为什么它最终不会淡化为黑色,因为为什么处理社区会采取这种行为?
另外,在您的原始代码(不是上面的示例)中,您可能会连续绘制白色矩形,因此它永远不会褪色。