Lienzo de medio círculo bug sembras en Chrome
-
28-10-2019 - |
Pregunta
Parece que alguien mencionó este error a los foros de Chromium, pero no hubo resolución, así que me pregunto si alguien simplemente conoce una solución.
El problema es tratar de renderizar un medio círculo en sentido antihorario en Chrome, utilizando el elemento de lona. En cambio, esto hace que un círculo completo:
var ctx = document.getElementById('can').getContext('2d');
ctx.beginPath();
ctx.arc(50,50,50,0,Math.PI*3,true);
ctx.fill();
ctx.closePath();
Aquí hay un violín, ver en no cromo, luego en Chrome: violín
Solución
El error probablemente proviene de esta parte de la especificación:
Si el argumento antihoras se omite o se falsa y el estatemo endangle es igual o mayor que 2π, o, si el argumento antihorario es verdadero y el endangle de inicio es igual o mayor que 2π, entonces el arco es toda la circunferencia de este círculo .
Chrome no parece respetar la segunda parte de esa declaración (es decir, cuando anticlockwise
es true
).
¿Por qué no normalizar su punto final?
var end = 3 * Math.PI;
while (end > 2 * Math.PI) {
end -= 2 * Math.PI;
}