Linienbreite in raphaeljs

7

Ist es real, eine Linie mit 1px Gewicht in SVG oder Raphaeljs zu machen?

Der folgende Code

%Vor%

Zeichne eine Linie, die wie 2px oder 3px aussieht. Irgendwelche Alternative?

    
Neir0 07.11.2011, 12:29
quelle

3 Antworten

13

Wenn SVG-Linien an ihren scheinbar korrekten Koordinaten liegen, liegen sie tatsächlich zwischen Pixeln. Wenn Sie also M1 1 L50 1 angeben, malt sie ein halbes Pixel oben und die andere Hälfte unten im Pixel, wodurch es wie ein dicker aussieht , halbtransparente Linie.

Um dieses Problem zu lösen, müssen Sie entweder mit halben Pixeln malen oder Ihre Elemente ein halbes Pixel, d. element.translate(0.5, 0.5)

Sie können die verschwommenen und scharfen Linien hier sehen: Ссылка

    
Duopixel 07.11.2011, 15:10
quelle
7

Sie sollten auch die Funktion Paper.renderfix() verwenden, da Sie nicht wissen, welchen Browser Ihre Benutzer verwenden werden.

Aus der Dokumentation

  

Behebt das Problem von Firefox und IE9 bezüglich Subpixel-Rendering. Ob   Papier ist abhängig von anderen Elementen nach dem Reflow könnte es die Hälfte verschieben   Pixel, die dazu führen, dass Linien ihre Knusprigkeit verlieren. Diese Methode behebt   das Problem.

    
Chasbeen 08.11.2011 23:06
quelle
4

Diese Links zeigen Ihnen, was mit Ganzzahlkoordinaten los ist und warum +0.5 am Rand verwischt wurde (mit netten Bildern !!):

Vergleiche:

mit +0.5 :

Sie können +0,5 umgehen mit:

%Vor%

oder durch Wrapper:

%Vor%

oder durch:

%Vor%

welcher Effekt auf alle Formen in deinem SVG-Bild ....

    
gavenkoa 17.01.2013 19:38
quelle

Tags und Links