Question

Il semble que quelqu'un ait mentionné ce bogue sur les forums Chromium, mais il n'y a pas eu de résolution, donc je me demande si quelqu'un connaît simplement une solution de contournement.

Le problème consiste à essayer de rendre un demi-cercle dans le sens antihoraire dans Chrome, à l'aide de l'élément canvas.Au lieu de cela, cela donne un cercle complet:

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

Voici un violon, vue en non-chrome, puis en chrome: violon

Était-ce utile?

La solution

Le bogue provient probablement de cette partie de la spécification :

Si l'argument anti-horaire est omis ou faux et endAngle-startAngle est égal ou supérieur à 2π, ou, si le l'argument anti-horaire est vrai et startAngle-endAngle est égal à ou supérieur à 2π, alors l'arc est la circonférence entière de ce cercle.

Chrome ne semble pas respecter la deuxième partie de cette déclaration (c'est-à-dire lorsque anticlockwise est true).

Pourquoi ne pas normaliser votre point final?

var end = 3 * Math.PI;
while (end > 2 * Math.PI) {
    end -= 2 * Math.PI;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top