我试图通过在循环中将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属性来使它工作。
答案 0 :(得分:0)
不幸的是,一旦将某些东西涂在画布上,它就会留在那里。如果你想改变一件事你需要重新整理。
关于clearRect
- 第3和第4个参数不应该是canvas节点的实际大小,而是它的分辨率,即它的width和height属性,在你的情况下:this.canvas.width
和{ {1}}