style img attribute javascript path svg d3.js

javascript - img - La ruta SVG no cerrada parece estar cerrada



img html title (2)

Estoy escribiendo algunas cosas con d3 y me encontré con un problema extraño. Las rutas que están cerradas terminan con un carácter ''Z'', pero cada ruta que hago se cierra (y se llena) independientemente de si incluyo una Z o no. Incluso en forma aislada con ejemplos copiados de la especificación, esto sucede. Por ejemplo:

<svg> <path d="M 40 60 L 10 60 L 40 42.68 M 60 60 L 90 60 L 60 42.68"/> </svg>

Estoy desconcertado sobre cuál podría ser el problema. Agradecería cualquier idea.


La línea relevante de la especificación SVG , con respecto a las rutas de llenado :

La operación de relleno llena los subtrazos abiertos al realizar la operación de llenado como si se hubiera agregado un comando adicional "closepath" a la ruta para conectar el último punto del subtrayecto con el primer punto del subtrayecto.

Entonces, en lo que se refiere al relleno , hay una "Z" implícita al final. Sin embargo, para el trazo , no hay un cierre implícito, por lo que no se dibujará un trazo que conecte el último punto al primer punto a menos que agregue explícitamente una "Z".

Si solo desea aplicar un trazo, use CSS para deshabilitar el relleno:

path { fill: none; stroke: #000; stroke-width: 1.5px; }

(Veo que respondió su propia pregunta, pero pensé que a los demás todavía les podría resultar útil una explicación).


Volví a votar la respuesta, pero a veces css no es una opción cuando intentas convertir svg a canvas y me gustaría evitar que la ruta svg se llene o se cierre. Equivalente a la solución CSS pero sin CSS ...

<svg fill="white" fill-opacity="0" stroke="#000" stroke-width="1.5"> <path d="M 40 60 L 10 60 L 40 42.68 M 60 60 L 90 60 L 60 42.68"/> </svg>