【发布时间】:2021-08-21 21:47:24
【问题描述】:
我想画一堆几乎透明的、相互重叠的白色矩形。
每个矩形的不透明度为 0.01
我有 100 个重叠的矩形,我希望输出结果是所有不透明度的总和。换句话说,我希望结果是没有任何不透明度的白色。
但事实并非如此。
- 为什么?
- 如何得到我想要的结果?
这里有一个极简代码来说明问题
let canvas = document.createElement("canvas");
canvas.width = canvas.height = 512;
let ctx = canvas.getContext("2d");
ctx.fillStyle = "#000000";
ctx.fillRect(0,0,512,512);
ctx.fillStyle = "#ffffff";
ctx.globalAlpha = 0.01;
for(let i=0;i<100;i++){
let n = i*3;
ctx.fillRect(n,n,512-n,512-n);
}
document.body.appendChild(canvas);
这是结果
这里是 jsfiddle https://jsfiddle.net/hsqpno04/
非常欢迎任何帮助!
【问题讨论】:
标签: javascript canvas opacity alpha overlapping