SVG: Verwenden von Linien zum Erstellen einfacher und komplexer Formen
Veröffentlicht: 2022-12-28Linie ist eine Grundform in SVG. Es kann verwendet werden, um einfache Formen wie eine Linie, ein Dreieck oder eine komplexere Form zu erstellen. Eine Linie kann auch als Pfad verwendet werden. Ein Pfad ist eine Folge verbundener Linien.
Da sie leistungsfähiger und flexibler als Standardformen sind, können sie verwendet werden, um alles und jedes zu erstellen. Das Pfadelement enthält eine Vielzahl von Befehlen und Koordinaten, die zum Definieren eines Pfads verwendet werden können. Die Pfaddefinition (d) ermöglicht es Ihnen, sich zu einem neuen Punkt zu bewegen und verschiedene Linien und Kurven zu zeichnen, indem Sie die Befehlszeile verwenden. Der Pfad kann mit einem von fünf Zeilenbefehlen erstellt werden. Dieser Beitrag verwendet Inline-SVG für den Code. Zunächst wird ein Pfad wie folgt definiert: x=50 und y=50 (M 50 50 50). In dieser nächsten Zeile verwenden wir den Buchstaben l (l 0 300) als Kleinbuchstaben.
Die relativen Koordinaten von 0 300 werden vom aktuellen Punkt (50 50) zu diesen Befehlen gezogen. Wie im folgenden Beispiel demonstriert, ersetzen wir die mittleren drei lineto-Befehle durch horizontale und vertikale. Da keine Koordinaten angegeben sind, muss der letzte Koordinatensatz nicht angegeben werden. Eine zweite Möglichkeit besteht darin, die Koordinaten x und y nach jedem Befehl durch Kommas zu trennen. Leerzeichen können verwendet werden, um die einzelnen Befehle und Pfaddaten besser sichtbar zu machen. Pfadbefehle sind viel vielseitiger als einfache Formen aus früheren Kapiteln. Aus dem ersten Beispiel kann ein Pfad mit lineto-Befehlen konstruiert werden. Jeder Pfadbefehl kann seine eigene Ausführungszeile haben, und Sie können noch mehr Leerzeichen verwenden. Es ist so einfach wie ein Befehl, zwei scheinbar getrennte Linien zu erstellen.
Pfade werden in SVG mit dem Element „path“ definiert. Jede Grundform wird in Bezug auf ihren äquivalenten Pfad beschrieben, was ihre Form ist. Der Pfad ist einfach der Pfad selbst, im Gegensatz zum Pfad eines Elements.
Zwei Punkte müssen durch ein Element wie das line>-Element verbunden werden, damit die Linie in SVG erstellt werden kann.
Ist es möglich, jeden Pfad in SVG zu zeichnen?
Ja, es ist möglich, beliebige Pfade in SVG zu zeichnen. SVG bietet viel Freiheit beim Zeichnen von Pfaden. Sie können die verschiedenen Pfadbefehle verwenden, um jede Art von Form zu erstellen, die Sie möchten.
Das Folgende ist eine Liste von Pfadbefehlen: moveto, lineto, curveto (sowohl kubische als auch quadratische Bazier), arcs und closepaths. Der zusammengesetzte Pfad (dh ein Pfad mit mehreren Unterpfaden) ermöglicht das Modifizieren von Objekten mit Donut-Löchern. Dieses Kapitel beschreibt die Syntax, das Verhalten und die DOM-Schnittstellen für SVG-Pfade. Auf den Pfaddatenbefehl folgt eine Reihe von Befehlen, gefolgt von einem einzelnen Zeichen. Pfaddaten haben eine einfache Syntax, die es ermöglicht, Dateien mit weniger Platz und weniger Aufwand herunterzuladen. Es ist möglich, Pfaddaten in mehrere Zeilen aufzuteilen, um sie aufgrund des Vorhandenseins von Zeilenumbruchzeichen leichter lesbar zu machen. Bei der Verwendung von Markup werden Zeilenumbrüche in den darin enthaltenen Attributen auf Leerzeichen normalisiert.
Die Pfaddatenzeichenfolge gibt eine Form an, die als Zeichenfolge für den Wert verwendet werden kann. Die folgenden Schritte helfen Ihnen beim Umgang mit Fehlern innerhalb der Zeichenfolge basierend auf dem Abschnitt Pfaddaten-Fehlerbehandlung. Wenn es eines gibt, muss dem Pfaddatensegment ein moveto-Befehl vorangestellt werden. Von dem Punkt, an dem der aktuelle Unterpfad beginnt, bis zu dem Punkt, an dem der Unterpfad endet, wird automatisch eine gerade Linie gezogen. In diesem Fall wäre ein Bahnsegment der Länge Null sinnvoll. Bei Verwendung der Closepath-Methode wird das Ende des Teilpfads mit dem Anfang des ersten Segments verbunden, wobei der aktuell verwendete Wert von 'stroke-linejoin' verwendet wird. Ein offener Teilpfad verhält sich wie ein geschlossener Teilpfad, jedoch überlappen sich die Pfadsegmente nicht.
Schließen von Pfadoperationen zum Vervollständigen von Segmenten in Python werden derzeit nicht unterstützt. Vom aktuellen Punkt zum neuen Punkt zeichnen die verschiedenen lineto-Befehle gerade Linien. Wenn Sie einen relativen l-Befehl befehlen, können Sie den genauen Endpunkt einer Linie erhalten (cpy x). In Richtung der positiven x-Achse erzeugt der relative h-Befehl eines positiven x-Wertes eine horizontale Linie. Die ersten fünf Beispiele geben einen Überblick über ein kubisches Bezier-Pfadsegment. Im Folgenden sind die vier Ellipsenbögen-Befehle aufgeführt. Wenn ein relativer Befehl verwendet wird, um einen Bogen zu zeichnen, ist cpy x der Endpunkt des Bogens (cpx x, cpy y).
Das Großbogen-Flag und das Wobbel-Flag stellen dar, welcher der vier Bögen gezeichnet wird. Die EBNF-Verarbeitung muss so viel wie möglich von einer gegebenen Produktion verbrauchen, damit sie aufhört, nachdem ein Zeichen die Anforderungen der Produktion nicht mehr erfüllt. Wenn die Eigenschaft d den Wert none hat, wird das Rendern deaktiviert. Beim Berechnen einer Kappenform und Auswählen von Markierungen wird die Standardrichtung an den Segmentgrenzen ignoriert. Ein Bogen mit Null rx oder ry wird als gerades Liniensegment (ein lineto) angesehen, das die Endpunkte verbindet. Dieses Skalierungsverfahren ist im Anhang der mathematischen Formel für dieses Skalierungsverfahren zu finden. Pfadsegmente ohne Länge sind nicht ungültig und können in den folgenden Fällen zu Renderproblemen führen.
Damit der Benutzeragent Entfernung-für-Pfad-Berechnungen skalieren kann, kann das ' pathLength' -Attribut verwendet werden, um die Gesamtpfadlänge des Autors zu berechnen. Ein 'path'-Element hat keine Länge für eine 'moveto'-Operation. Die Pfadlänge wird berechnet, indem mehrere Befehle „lineto“, „curveto“ und „arcto“ ausgewählt werden.
Wie zeichne ich eine horizontale Linie in SVG?
Um eine horizontale Linie in SVG zu zeichnen, müssen Sie das Element „Linie“ verwenden. Das Element 'line' benötigt zwei Attribute, 'x1' und 'x2', die die x-Koordinaten des Anfangs- und Endpunkts der Linie angeben. Die Attribute „y1“ und „y2“ sind nicht erforderlich, aber wenn sie nicht angegeben sind, werden sie standardmäßig auf „0“ gesetzt.
Unabhängig davon, was Sie in CodePen im HTML-Editor schreiben, sind die Elemente, die in einer einfachen HTML5-Vorlage erscheinen, die HTML5-Elemente. Wenn Sie Klassen hinzufügen möchten, die das gesamte Dokument betreffen, ist dies der richtige Ort. CSS kann von jedem Stylesheet aus dem Internet auf Ihren Stift angewendet werden. Sie können das Skript auf Ihrem Stift ganz einfach von überall im Internet ändern. Sie können eine URL angeben, und wir fügen sie in der Reihenfolge hinzu, in der Sie sie angeben, wenn Sie das JavaScript im Stift platzieren. Wir werden das Skript verarbeiten, wenn es eine Dateierweiterung für einen verknüpften Präprozessor enthält.
Kann ich dem SVG-Pfad eine Klasse hinzufügen?
Das Hinzufügen eines Klassenattributs zu einem HTML-Element ist dasselbe wie das Hinzufügen einer Klasse zu einem HTML-Element. Bei Verwendung von CSS muss der SVG-Code inline in das Dokument eingefügt werden, aber ein *img-Tag verweist nicht darauf.
SVG-Elemente und Klasse
Die folgende Abbildung enthält sowohl die Elemente „rect“ als auch „circle“ in einem SVG-Element namens „container“. Auf dem „rect“-Element gibt es zwei „Breite“- und „Höhe“-Attribute; Auf dem „Kreis“-Element gibt es zwei „Radius“-Attribute. XMLns:xlink xmlns: xlink: http://www.w3.org/1999/xlink/xlink.html width=100% height=100% Kreisbreite: 50% Höhe: 50% Radius: 10% Füllung: rot