如何从画布中清除Path2D

时间:2018-05-26 17:53:14

标签: javascript svg canvas

我试图通过在循环中将Path2D渲染到画布来制作动画。 我需要清除或编辑现有的Path2D并每隔几秒就放一个新的Path2D。我尝试过clearRect()方法,但它似乎没有做任何事情。这是我的代码:

update(options) {
    this.ctx.clearRect(0, 0, this.canvas.nativeElement.innerWidth, this.canvas.nativeElement.innerHeight);
    this.ctx.beginPath();
    const path = this.cardinal(options.points, true, 1); // SVG path
    const P2D = new Path2D(path);
    this.ctx.fill(P2D);
}

如何清除路径或编辑现有路径?

FIX:

this.canvas.nativeElement.width, this.canvas.nativeElement.height

已经返回undefined。我不得不使用画布的.width和.height属性来使它工作。

1 个答案:

答案 0 :(得分:0)

不幸的是,一旦将某些东西涂在画布上,它就会留在那里。如果你想改变一件事你需要重新整理。

关于clearRect - 第3和第4个参数不应该是canvas节点的实际大小,而是它的分辨率,即它的width和height属性,在你的情况下:this.canvas.width和{ {1}}