当我给它一个常量值时,为什么 alpha 值会改变?
Why does the alpha value change when I have given it a constant value?
我正在使用 p5.js 网页编辑器
var sketch = function (p) {
with(p) {
p.setup = function() {
createCanvas(400, 400);
secCanvas = createGraphics(400, 400);
secCanvas.clear();
trans = 0;
drop_size = 10;
sun_size = 50;
radius = 10;
};
p.draw = function() {
background(3, 182, 252, 1);
image(secCanvas, 0, 0)
secCanvas.fill(255, 162, 0, 1)
secCanvas.ellipse(width/2, 0 + sun_size, sun_size)
fill(40, trans)
trans = random(255);
ellipse(random(mouseX + radius, mouseX - radius), random(mouseY + radius, mouseY - radius), drop_size)
drop_size = random(50)
};
}
};
let node = document.createElement('div');
window.document.getElementById('p5-container').appendChild(node);
new p5(sketch, node);
body {
background-color:#efefef;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
<div id="p5-container"></div>
当我在 secCanvas.fill() 中设置一个离散的 alpha 值时。该值似乎在逐渐增加(并很快停止),而我没有给出这样的指示。为什么会这样?这仅在我将 background(3, 182, 252, 1);
放入绘制函数时发生,但当我将其放入设置函数时不会发生。
每一帧都绘制在所有之前的帧之上,因此当您绘制 semi-transparent 背景时,您仍然可以在其下方看到之前的帧。
可以把它想象成在你已经画过的东西上加一层很薄的油漆。因为您要添加的颜色是 semi-transparent,您仍然可以看到它下面的内容。然后在下一帧中,添加另一层油漆,之前的帧会变得更加暗淡。
由于计算机根据先前的帧和新的 semi-transparent 背景颜色计算新颜色的方式,它们不再变得更暗。长话短说,您绘制的颜色几乎是 100% 透明的,因此它的强度不足以完全隐藏之前的帧。
我正在使用 p5.js 网页编辑器
var sketch = function (p) {
with(p) {
p.setup = function() {
createCanvas(400, 400);
secCanvas = createGraphics(400, 400);
secCanvas.clear();
trans = 0;
drop_size = 10;
sun_size = 50;
radius = 10;
};
p.draw = function() {
background(3, 182, 252, 1);
image(secCanvas, 0, 0)
secCanvas.fill(255, 162, 0, 1)
secCanvas.ellipse(width/2, 0 + sun_size, sun_size)
fill(40, trans)
trans = random(255);
ellipse(random(mouseX + radius, mouseX - radius), random(mouseY + radius, mouseY - radius), drop_size)
drop_size = random(50)
};
}
};
let node = document.createElement('div');
window.document.getElementById('p5-container').appendChild(node);
new p5(sketch, node);
body {
background-color:#efefef;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
<div id="p5-container"></div>
当我在 secCanvas.fill() 中设置一个离散的 alpha 值时。该值似乎在逐渐增加(并很快停止),而我没有给出这样的指示。为什么会这样?这仅在我将 background(3, 182, 252, 1);
放入绘制函数时发生,但当我将其放入设置函数时不会发生。
每一帧都绘制在所有之前的帧之上,因此当您绘制 semi-transparent 背景时,您仍然可以在其下方看到之前的帧。
可以把它想象成在你已经画过的东西上加一层很薄的油漆。因为您要添加的颜色是 semi-transparent,您仍然可以看到它下面的内容。然后在下一帧中,添加另一层油漆,之前的帧会变得更加暗淡。
由于计算机根据先前的帧和新的 semi-transparent 背景颜色计算新颜色的方式,它们不再变得更暗。长话短说,您绘制的颜色几乎是 100% 透明的,因此它的强度不足以完全隐藏之前的帧。