360度帆布弧的间隙

时间:2013-08-17 17:59:44

标签: javascript canvas html5-canvas

为什么360度弧存在差距

ctx.beginPath();
ctx.moveTo(100, 100);
ctx.arc(100, 100, 100, 90 * Math.PI / 180, 450 * Math.PI / 180);

且0到360之间的弧没有

ctx.beginPath();
ctx.moveTo(310, 100);
ctx.arc(310, 100, 100, 0 * Math.PI / 180, 360 * Math.PI / 180);

http://jsfiddle.net/YMtdZ/4/
这是一个错误,或者我做错了什么?

2 个答案:

答案 0 :(得分:2)

Chrome对于canvas的arc方法有几个问题。

您可以通过稍微调整角度来解决Chrome中的这个问题:

ctx.arc(100, 100, 100, 90 * Math.PI / 180.01, 450 * Math.PI / 180.01);

<强> Updated Fiddle

答案 1 :(得分:1)

这不是一个bug,只是一个反锯齿的怪癖。 Chrome的抗锯齿效果似乎 way 过于精确,因此在某些情况下会出现一个小差距。

在FF和IE10上没有发生。