【发布时间】:2019-05-21 08:51:03
【问题描述】:
我正在尝试添加一个带有 40 像素边框(笔触)且没有背景(填充)的圆圈
我已经让它工作了 - 它只是最近绘制的圆圈,它的填充为黑色,即使我将它(和所有其他)设置为 'rbg(0,0,0,0)'
public animate(milliseconds: any) {
const elapsed = milliseconds - this.Configs.lastStep;
this.Configs.lastStep = milliseconds;
if (this.canvas) {
this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
}
this.update(elapsed);
this.ctx.fill();
window.requestAnimationFrame(this.animate.bind(this));
}
public draw(milliseconds: number) {
const colors = ["#270f36", "#632b6c", "#c76b98", "#f09f9c", "#fcc3a3"];
this.ctx.save();
for (let ring of this.rings) {
this.ctx.beginPath();
this.ctx.fillStyle = "rgba(255, 255, 255, 0)";
this.ctx.strokeStyle = randomItemFromArray(colors);
this.ctx.arc(ring.getOrigin.x, ring.getOrigin.y, ring.getRadius, 0, Math.PI * 2, false);
this.ctx.lineWidth = 10;
this.ctx.fill();
this.ctx.stroke();
}
this.ctx.restore();
}
public update(elapsed: number) {
this.draw(elapsed);
}
我希望所有的环都是透明的 - 但添加到环阵列的最后一个总是填充黑色。
我很难过 - 任何想法都将不胜感激。
【问题讨论】:
-
不会
this.ctx.restore每次绘制后都重置填充颜色吗?大概默认填充颜色是黑色。另外,在这段代码中,您将最后一个填充颜色设置为透明黑色吗?另外,如果你尝试用透明黑色填充,而圆圈之前已经填充过,那么它看起来并没有什么不同。 -
如果您不想填写,为什么还要打电话给
.fill()?