<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.moveTo(150,5);
ctx.lineTo(150,145);
ctx.arc(100,75,50,0,0.25*Math.PI);
//ctx.beginPath();
ctx.moveTo(50,5);
ctx.lineTo(50,145);
ctx.arc(100,75,50,0.75*Math.PI,1*Math.PI);
//ctx.closePath();
ctx.stroke();
ctx.closePath();
</script>
</body>
</html>运行效果为什么左边会出现红圈这部分线,而右边却没有?
3 回答
肥仔汇
TA贡献6条经验 获得超5个赞
原因如下
代码第20行
ctx.arc(100,75,50,0.75*Math.PI,1*Math.PI);
所画的圆起点不在直线上
CANVAS自动把竖线和起点连起来了
所以才会出现这一段
解决方案
ctx.arc(100,75,50,1*Math.PI,0.75*Math.PI,true);
illuminiti
TA贡献1条经验 获得超0个赞
ctx.beginPath(); ctx.moveTo(150,5); ctx.lineTo(150,145); ctx.stroke(); ctx.closePath(); ctx.beginPath(); ctx.arc(100,75,50,0,0.25*Math.PI); ctx.stroke(); ctx.closePath(); ctx.beginPath(); ctx.moveTo(50,5); ctx.lineTo(50,145); ctx.stroke(); ctx.closePath(); ctx.beginPath(); ctx.arc(100,75,50,0.75*Math.PI,1*Math.PI); ctx.stroke(); ctx.closePath();
这样测试可以了!
添加回答
举报
0/150
提交
取消