SVG Pfad in absolute Befehle konvertieren

8

Wie kann ich bei einem SVG-Pfad-Element alle Pfadbefehle in absolute Koordinaten umwandeln? Konvertieren Sie diesen Pfad beispielsweise:

%Vor%

in diesen äquivalenten Pfad:

%Vor%

Diese Frage wurde motiviert von diese Frage .

    
Phrogz 13.03.2012, 03:13
quelle

3 Antworten

11

Hier ist der JavaScript-Code, den ich mir ausgedacht habe:

%Vor%

Verwendet so mit dem Pfad von der Frage:

%Vor%

Bearbeiten : Hier ist eine Testseite mit einem Pfad, der jeden Befehl (absolut und relativ) interleaved enthält und zeigt, dass die Konvertierung in den aktuellen Versionen von IE, Chrome, FF und Safari funktioniert . Ссылка

    
Phrogz 13.03.2012, 03:17
quelle
8

Wenn Sie Raphaël haben, haben Sie sowohl Raphael.pathToRelative als auch Raphael._pathToAbsolute .

Raphael._pathToAbsolute befindet sich nicht in der Dokumentation ( wie pathToRelative ) und wird intern an vielen Stellen in Raphael Source verwendet . Es kann aber auch extern verwendet werden, wenn Sie _ vor dem Funktionsnamen auf diese Weise hinzufügen: Raphael._pathToAbsolute .

Online-Konvertierung: Ссылка

Die Verwendung ist die gleiche wie die relative:

%Vor%

Ich weiß nicht, warum pathToAbsolute nicht in der Dokumentation ist. Es sollte.

Wenn Sie möchten, dass dies in Web Workers funktioniert (um den Code zu beschleunigen), ist es einfach, die gewünschte Funktion von Raphael zu bekommen (was von der Lizenz erlaubt sein sollte) und sie als eine DOM-freie Methode zu verwenden. Raphael ist eine DOM-Manipulationsbibliothek (wie auch jQuery) und kann nicht in Workers verwendet werden, da DOM in Workers nicht unterstützt wird. Wenn Sie sehr komplexe Pfade haben, kann der Browser hängen bleiben, und Web Workers bietet eine Lösung in modernen Browsern zu verhindern.

    
Timo Kähkönen 03.11.2012 18:35
quelle
1

Hier ist eine Bibliothek für Svg-Pfadmanipulationen ( d attr): Ссылка .

    
Vitaly 13.04.2015 00:20
quelle

Tags und Links