Warnung
Da ich im Moment diese Seite leider nicht mehr aktiv pflegen und auf dem neuesten Stand halten kann, können manche Informationen bereits veraltet sein. Sollten Änderungen von euch bei mir eintreffen, bin ich jedoch gerne bereit diese hier einzupflegen. Auch Leute, die sich um die Seite bzw. deren Inhalt kümmern möchten, sind gerne gesehen.
 Inhaltsverzeichnis  SVG-Aufbau  Grundelemente

3.5Grundelemente

Nachdem in den letzten Kapiteln das Grundgerüst einer SVG-Datei erstellt wurde, kann dieses nun mit Grafikobjekten gefüllt werden. SVG bietet hierfür beispielsweise folgende primitive Grundformen an:

zum Anfang der Seitezum Ende der Seite

3.5.1Das Rechteck

Ein Rechteck wird in SVG durch folgende Eigenschaften definiert:

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <rect x ="10" y ="10" width ="100" height ="50" rx ="15" ry ="15" />
</svg>
Listing 3-3: Beispiel eines Rechtecks

Abbildung 3-1: Vom Adobe-SVG-Plugin gerendertes Rechteck
zum Anfang der Seitezum Ende der Seite

3.5.2Der Kreis

Mit diesen Attributen läßt sich in SVG ein Kreis beschreiben:

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <circle cx ="40" cy ="40" r ="20" />
</svg>
Listing 3-4: Beispiel eines Kreises

Abbildung 3-2: Der Kreis des obigen Beispiels
zum Anfang der Seitezum Ende der Seite

3.5.3Die Ellipse

Eine Ellipse kann beinahe identisch beschrieben werden wie ein Kreis, nur daß es anstatt eines Radius zwei Werte gibt, welche die Breite und Höhe repräsentieren. Die Attribute einer Ellipse lauten:

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <ellipse cx="50" cy="30" rx="40" ry="20" />
</svg>
Listing 3-5: Beispiel einer Ellipse

Abbildung 3-3: Die Ellipse im Betrachter
zum Anfang der Seitezum Ende der Seite

3.5.4Die Linie

Eine Linie wird folgendermaßen definiert:

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <line x1="5" y1="5" x2="200" y2="100" style="stroke:black;stroke-width:3;" />
</svg>
Listing 3-6: Beispiel einer Linie

Abbildung 3-4: Die Linie dargestellt im Browser

Das hier zum ersten Mal auftauchende style-Attribut wird später noch etwas genauer erläutert. Hier findet es nur Verwendung, damit sich durch die Angabe einer Linienfarbe und -dicke die Linie besser erkennen läßt.

zum Anfang der Seitezum Ende der Seite

3.5.5Die Polylinie / Das Polygon

Diese beiden Grafikelemente unterscheiden sich nur minimal voneinander. Beide besitzen eine Punktemenge, die ein Objekt beschreibt. Bei einer Polylinie wird jedoch der Startpunkt nicht mit dem Endpunkt dieser Menge verknüpft, während dies bei einem Polygon der Fall ist. Das einzige Attribut dieser beiden Elemente lautet:

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <polyline points="10,10 20,40 140,50 55,62 12,70 120,80"
            style="stroke:black;stroke-width:3;fill:none" />
</svg>
Listing 3-7: Beispiel einer Polylinie

Abbildung 3-5: Die oben beschriebene Polyline

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <polygon points="10,10 20,40 140,50 55,62 12,70 120,80"
           style="stroke:black;stroke-width:3;fill:none" />
</svg>
Listing 3-8: Beispiel eines Polygons

Abbildung 3-6: Die "Polylinie" mit verbundenem Start- und Endpunkt

SVG erlaubt mehrere korrekte Schreibweisen für die Angabe der Punktemenge:

Zu erwähnen sei noch kurz das Attribut fill-rule, welches Füllmethoden für Polygone oder Polylinien bereitstellt, falls sich einzelne Linien überschneiden. Dabei werden Polylinien so behandelt, als wären der erste und der letzte Punkt der Linie miteinander verbunden. fill-rule kann die Werte evenodd und nonzero annehmen. Die  Abbildung 3-7 aus der SVG-Spezifikation zeigt wie die beiden Modi verschiedene Objekte unterschiedlich darstellen.


Abbildung 3-7: Oben der Modus "nonzero", unten der Modus "evenodd"
zum Anfang der Seitezum Ende der Seite

3.5.6Der Pfad

Der Pfad (<path>) ist ein sehr mächtiges und gleichzeitig auch ziemlich kompliziertes Element, mit dem sich komplexe Formen, Animationsstrecken oder Maskenregionen erstellen lassen. Analog zu den Polylinien und Polygonen exisitiert beim Pfad ebenso ein Attribut (d), das die Punkte des Pfades beinhaltet. Jedoch werden dabei nicht nur die Punkte angegeben, sondern auch spezielle Befehle, die den Viewer darüber unterrichten wie er die Punkte zu interpretieren hat. So kann es sich bei einem Punkt z.B. um den Beginn oder das Ende einer Kurve oder aber einer Linie handeln. Deshalb muß die Punktemenge nach einer gewissen Regel formatiert werden.  Tabelle 3-2 listet die Kommandos auf, mit deren Hilfe sich solche Formatierungen durchführen lassen.

KommandoBeschreibungBeispiel
M (MoveTo)Setzt den aktuellen Punkt fest, von dem aus der Pfad starten soll.M20 50
Z (ClosePath)Erstellt eine geschlossene Form.Z
L (LineTo)Zeichnet eine Linie vom aktuellen zum angegebenen Punkt.L50 100
H (Horizontal LineTo)Zeichnet vom aktuellen Punkt aus eine horizontale Linie.H75
V (Vertical LineTo)Zeichnet vom aktuellen Punkt aus eine vertikale Linie.V40
C (CurveTo)Zeichnet vom aktuellen Punkt aus eine Bézier-Kurve.C30 0 50 20 60 15
S (Shorthand/Smooth CurveTo)Ähnlich dem Kommando C, jedoch wird hier als erster Kontrollpunkt der letzte aus der direkt zuvor festgelegten Bézier-Kurve verwendet.S40 0 60 0
Q (Quadratic Bézier CurveTo)Zeichnet eine quadratische Bézier-Kurve.Q40 0 60 20
T (Shorthand/Smooth Quadratic Bézier CurveTo)Ähnlich dem Kommando Q, jedoch wird hier als erster Kontrollpunkt der letzte aus der direkt zuvor festgelegten quadratischen Bézier-Kurve verwendet.T1000 300
A (Elliptical Arc)Zeichnet vom aktuellen Punkt aus einen elliptischen Bogen.A25 25 -30 0 1 50 -25
Tabelle 3-2: Pfad-Kommandos

Übrigens muß hier unbedingt auf Groß- und Kleinschreibung geachtet werden, da Kleinbuchstaben relative Angaben, Großbuchstaben hingegeben absolute Angaben definieren.

 Anzeigebeispiel

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M60 10 L110 80 L10 80 Z" style="stroke:black;stroke-width:3;fill:none;" />
</svg>
Listing 3-9: Beispiel eines Pfades

Abbildung 3-8: Ein Pfad in Form eines Dreiecks

SVG erlaubt auch hier verschiedene Schreibweisen für den Inhalt des d-Attributs:

Zum Abschluß dieses Unterabschnitts soll noch kurz auf Bézier-Kurven eingegangen werden, die sich mit dem CurveTo-Befehl erstellen lassen.  Abbildung 3-9 zeigt eine solche Kurve.

 Anzeigebeispiel


Abbildung 3-9: Eine Kurve aus vier Punkten

Die etwas dicker gezeichnete Kurve wird durch das <path>-Element aus  Listing 3-10 dargestellt.

<path d="M20 200 C20 150 200 250 200 200" style="fill:none;stroke-width:3;stroke:black;" />
Listing 3-10: Beispiel eines Pfades

Bei den Punkten P1 und P2 handelt es sich um den Start- und den Endpunkt der Kurve. P1 wird im d-Attribut durch M20 200, P2 durch die letzten beiden Koordinaten 200 200 beschrieben. Durch die hier zusätzlich eingezeichneten Kontroll- oder Ablenkungspunkte C1 und C2 wird die Richtung der Kurve bestimmt. Die Krümmung wird umso stärker, je weiter sich die Ablenkungspunkte von den Ursprungspunkten entfernen und schwächer, wenn sie sich ihnen nähern. Es sei darauf hingewiesen, daß die Kurve niemals durch diese beiden Punkte verlaufen kann.

zum Anfang der Seite
zum vorherigen Kapitel  Längeneinheiten
zum nächsten Kapitel  Färben, Füllen und Stifte
 Inhaltsverzeichnis  SVG-Aufbau  Grundelemente