gpt4 book ai didi

javascript - 为什么上下文描边会重绘 Canvas 上的旧图

转载 作者:行者123 更新时间:2023-11-30 15:33:24 26 4
gpt4 key购买 nike

在下面的例子中,按下两个按钮时在 Canvas 上画了两条不同的线,我怎样才能让第二个按钮清除旧线并画另一条线?

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;"></canvas>

<button onclick="draw()">first</button>

<button onclick="draw2()">second</button>

<script>

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");

ctx.strokeStyle = "red";

function draw(){
ctx.moveTo(0,0);
ctx.lineTo(100,200);
ctx.stroke();
}

function draw2(){
ctx.clearRect(0, 0, c.width, c.height);
ctx.moveTo(100,0);
ctx.lineTo(0,200);
ctx.stroke();
}

</script>

我正在使用 clearRect 函数来清除 Canvas ,但是当在第二个绘图上调用 stroke 时,第一个被重绘。

最佳答案

您必须调用 .beginPath() 来清除当前路径并开始一个新路径。在您的情况下,您似乎可以在两个函数的每个函数的开头执行此操作。

关于javascript - 为什么上下文描边会重绘 Canvas 上的旧图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com