Gracias a Chasbeen, descubrí cómo hacer un verdadero anillo/donut en SVG. Tenga en cuenta que el círculo exterior en realidad no está cerrado, lo cual solo es aparente cuando usa un trazo. Muy útil cuando tiene muchos anillos concéntricos, especialmente si son interactivos (por ejemplo, con comandos CSS hover).
Para el comando sorteo ...
M cx, cy // Move to center of ring
m 0, -outerRadius // Move to top of ring
a outerRadius, outerRadius, 0, 1, 0, 1, 0 // Draw outer arc, but don't close it
Z // default fill-rule:even-odd will help create the empty innards
m 0 outerRadius-innerRadius // Move to top point of inner radius
a innerRadius, innerRadius, 0, 1, 1, -1, 0 // Draw inner arc, but don't close it
Z // Close the inner ring. Actually will still work without, but inner ring will have one unit missing in stroke
JSFiddle - Contiene varios anillos y CSS para simular la interactividad. Tenga en cuenta el inconveniente de que falta un único píxel en el punto de inicio (en la parte superior), que solo está allí si agrega un trazo.
Editar: Encontrado este SO answer (y mejor aún, this answer), que describe cómo obtener las entrañas vacías en generales
El problema con esto es que no me permite mantener el contorno negro también. Me gustaría una forma de anillo con un contorno negro. – luketorjussen
@luketorjussen: para mí, esto es solo un contorno negro. si desea un color de relleno diferente, simplemente cambie el atributo de relleno – rampion
@rampiom: quiero tener un anillo de un color determinado, todo con un contorno negro – luketorjussen