con el lienzo HTML si se traza una línea de puntos así:¿Por qué HTML Canvas redondea lineCap para el último segmento?
ctx.lineWidth = 40;
ctx.lineCap = 'round';
ctx.strokeStyle = 'red';
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(150,200);
ctx.moveTo(200,300);
ctx.lineTo(250,400);
ctx.moveTo(300,500);
ctx.lineTo(350,600);
ctx.closePath();
ctx.stroke();
entonces el resultado es el siguiente:
Como se puede ver en this test page, la adición de un "superflua" moveTo
llame después de que el último lineTo
arregla el último segmento de línea para usar límites redondeados.
Estaba preparado para presentar esto como un error, pero luego descubrí que el comportamiento es idéntico en Safari v5, Chrome v8 y FireFox v3.6 y v4.0b. Esto me lleva a creer que es intencional.
¿En qué parte de la norma se especifica este comportamiento, y (si puede discernirlo) por qué se especificó así?
En otras palabras: si bien siempre debe llamar a 'beginPath()' al iniciar su nueva ruta, solo debe llamar a 'closePath()' cuando realmente lo necesite y saber lo que hace. No se requiere, o se desea, la mayor parte del tiempo. – Phrogz