Das ist eine ziemlich obskure Sache, ich musste sie nur einmal selbst machen und fand sie verwirrend, also dachte ich, ich mache ein ganzes Video dazu.
Die Sache ist, nicht alles ist ein <path> in SVG. <path> ist fantastisch, weil es *alles* sein *kann*. Aber die Syntax dafür ist einfach etwas komplexer als die aller anderen Formen. Also (vielleicht aus diesem Grund?) gibt Illustrator die Formen in SVG immer mit dem am besten geeigneten Element aus. Rechtecke sind <rect>, andere Formen, die nur aus geraden Linien bestehen, sind ein <polygon>, oder wenn es eine offene Form ist, ein <polyline>, usw.
Das wäre in Ordnung, außer dass sich die DOM-Methoden für diese Formen unterscheiden. Ein Pfadelement hat eine Methode namens getTotalLength(), die Ihnen verrät, wie lang der Pfad ist. Das ist ziemlich cool und manchmal nützlich, aber Sie können es nicht nur bei einem <path> tun, bei keinem anderen Element.
Ein Grund, warum Sie diese Länge wissen möchten, ist, dass Sie sie animieren möchten, damit sich die Form "selbst zeichnet" – ein cooler kleiner Designeffekt (Sammlung von Beispielen). Sie können es in CSS tun, aber es ist schön, etwas JavaScript zu verwenden, um dieses CSS anzuwenden, damit es jedes Mal die perfekte Distanz animiert.
Sagen wir also, Sie möchten diesen Zeicheneffekt erzielen, aber die Form ist ein <polygon>, und das JavaScript schlägt fehl. Sie können dieses Polygon in einen Pfad umwandeln, ohne es visuell zu verändern, indem Sie einfach einen Punkt hinzufügen, der einen Bézier-Griff hat. Das heißt, klicken Sie mit dem Zeichenstift-Werkzeug und ziehen Sie, damit die Griffe herauskommen und die Griffe genau entlang der bereits vorhandenen Linie ausrichten. Die Existenz dieses Punktes macht es zu einem <path> in der Ausgabe.
Wenn Sie das oft tun, gibt es ein Werkzeug namens Poly2Path, das funktioniert und keinen überflüssigen Punkt benötigt.
Ich bin mir nicht sicher, ob Sie das jetzt wissen, aber... beim Herumspielen habe ich gerade entdeckt, dass Sie auch Objekt->Pfad->Ankerpunkte hinzufügen verwenden können, um ein Element in Illustrator zu einem Pfad zu machen.
Schön! Ich denke, das Konzept dahinter ist, dass es keine andere Möglichkeit gibt, z. B. 5 Punkte auf einem gekrümmten Pfad zu beschreiben, als einen
<path>. Wenn Sie in Illustrator ein Rechteck hätten und einen zusätzlichen Punkt hinzufügen würden, würde es wahrscheinlich von einem<rect>zu einem<polygon>werden.Hallo allerseits,
Ich habe ein wenig in Illustrator herumprobiert, um mich zu erinnern, wo ich das gesehen hatte.
Mit der ausgewählten Form können Sie Objekt -> Verbundpfad -> Erstellen (CMD+8) wählen, und es konvertiert Ihre Form in einen Pfad. (Bildschirmfoto unter https://dl.dropboxusercontent.com/u/18132950/make-compound.png ) Dies wird auch in der Ebenenpalette angezeigt, wenn Sie diese geöffnet haben.
Dann, wenn Sie als SVG speichern, erhalten Sie das Pfadelement im Code ohne zusätzliche Punkte. Wenn Sie also von einem Kreis zu einem Quadrat wechseln möchten, könnten Sie dies mit den ursprünglichen vier ziemlich reibungslos tun.
(Nur zur Info, ich bin auf CC 2014, aber ich denke, das gibt es schon seit ein paar Versionen.)
Sie können auch ziemlich coole Dinge mit Verbundpfaden machen, die Sie sonst komplett verrückt animieren müssten. Stellen Sie sich vor, Sie drehen einfach das Objekt in diesem http://painteddigital.com/2010/illustrator-tip-compound-path/ an, anstatt jeden der "Strahlen" um ein gemeinsames Zentrum zu koordinieren.
Ich empfehle dringend Jarek Foksa's pathData-Polyfill für jede primitive zu Pfad-Konvertierung.
Tatsächlich basiert es auf einem SVG 2-Entwurf – leider ist dieser Vorschlag schon seit einiger Zeit im Entwurfsstadium ...
Obwohl der Hauptzweck dieses Skripts darin besteht, d-Attribute in ein Array von Befehlen zu parsen, kann seine Normalisierungsoption jeden SVG-Primitiven (Linie, Polyline, Polygon, Kreis, Rechteck) in absolute kubische Bézier-Befehle konvertieren.
Es ist also ziemlich vielseitig für weitere Pfadmanipulationen (Ändern von Start-M-Befehlen, Umkehren von Pfadrichtungen usw.) und dennoch relativ leichtgewichtig – im Vergleich zu ausgefeilteren SVG-Verarbeitungsbibliotheken.
Auch auf Stack Overflow beschrieben: SVG – Konvertieren Sie alle Formen/Primitive in.