Así que quieres de un píxel de líneas horizontales y verticales grande para mostrarse con afilada en lugar de bordes difusos.
Si todas las coordenadas en su SVG son enteros, tal vez usted puede compensar toda la imagen en un 0,5, mediante el uso de un elemento de transformar:
// first group has no transform
// lines appear blurred, because they are centered on boundary of two pixels
<g id = "blurred">
<line x1="10" y1="10" x2="110" y2="10" stroke="black" stroke-width="1"/>
<line x1="10" y1="10" x2="10" y2="100" stroke="black" stroke-width="1"/>
</g>
// second group has half pixel transform -
// lines will appear sharp because they are translated to a pixel centre
<g id="sharp" transform="translate(0.5,0.5)">
<line x1="120" y1="10" x2="220" y2="10" stroke="black" stroke-width="1"/>
<line x1="120" y1="10" x2="120" y2="100" stroke="black" stroke-width="1"/>
</g>
Pero esta voluntad no funciona para líneas horizontales/verticales que no están definidas con coordenadas enteras, o cuando otra transformación las aleja de las coordenadas enteras.
Así que si esta idea no se puede utilizar para resolver su problema, entonces probablemente necesite una técnica de "ajuste de píxeles". Esto analizaría una línea antes de dibujarla. Si la línea es vertical u horizontal (después de la transformación), entonces es necesario ajustar las coordenadas para que puedan terminar en un centro del píxel después de la transformación.
usted puede estar interesado en el estudio de la explicación WPF Pixel Snapping para obtener información básica con respecto a este problema común.
Esto puede funcionar, si puedo apagar AA, solucionará el problema. –
Ok, este problema solo funcionó, el estilo de jQuery SVG no se establece correctamente si lo llama shapeRendering, como se refieren en su documentación, tiene que ser la representación de forma, de lo contrario no funciona. –
Supongo que tiene que ser 'shapeRendering' cuando lo configura como una propiedad de objeto DOM:' yourElement.style.shapeRendering = "crispEdges" ', pero dentro de un atributo de estilo debe conservar su nombre original. –