Chrome中的Canvas半圈bug解决方法

时间:2011-12-05 17:27:26

标签: javascript google-chrome html5-canvas geometric-arc

看起来有人确实向Chromium论坛提到了这个错误,但没有解决方案,所以我想知道是否有人只是知道一个解决方法。

问题是尝试使用canvas元素在Chrome中逆时针呈现半圈。相反,这会呈现一个完整的圆圈:

var ctx = document.getElementById('can').getContext('2d');
ctx.beginPath();
ctx.arc(50,50,50,0,Math.PI*3,true);
ctx.fill();
ctx.closePath();

这是一个小提琴,非铬色视图,然后是chrome:fiddle

1 个答案:

答案 0 :(得分:2)

该错误可能源于this part of the spec

  

如果省略逆时针参数或者为false   endAngle-startAngle等于或大于2π,或者,如果是   anticlockwise参数为true,startAngle-endAngle等于或   大于2π,那么弧就是整个圆周   圈。

Chrome似乎不尊重该声明的第二部分(即anticlockwisetrue时)。

为什么不规范你的终点?

var end = 3 * Math.PI;
while (end > 2 * Math.PI) {
    end -= 2 * Math.PI;
}