【发布时间】:2013-07-06 03:26:07
【问题描述】:
我正在尝试重置drawValueArc() 内的绿色弧线,以便每次单击更改按钮时,绿色弧线都会被删除并重新绘制。如何在不移除整个画布的情况下将其移除?另外,顺便说一句,我注意到Math.random() * 405 * Math.PI / 180 实际上并不总是产生适合灰色弧线的弧线,有时它比灰色弧线大,这是为什么呢?
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var cx = 150;
var cy = 150;
var startRadians = 135 * Math.PI / 180;
var endRadians = 405 * Math.PI / 180;
//main arc
ctx.beginPath();
ctx.arc(cx, cy, 58, startRadians, endRadians, false);
ctx.strokeStyle="rgb(220,220,220)";
ctx.lineWidth = 38;
ctx.stroke();
$('#setRandomValue').click(function(){
drawValueArc(Math.random() * 405 * Math.PI / 180);
});
function drawValueArc(val){
//ctx.clearRect(0, 0, W, H);
ctx.beginPath();
ctx.arc(cx, cy, 58, startRadians, val, false);
ctx.strokeStyle = "green";
ctx.lineWidth = 38;
ctx.stroke();
}
【问题讨论】:
-
这可能有点矫枉过正,但您可以考虑尝试 EaselJS createjs.com/#!/EaselJS 或其他一些画布库。这将对正在绘制的每个元素提供非常好的控制。许多简单的形状/多边形已经构建出来并且易于实现。
标签: javascript canvas