Bildoben  
aptico-Home | AGB-(c) | SVG-Tutorial Inhalt
Schatten

SVG Tutorial

  svg tutorial index  |  Kapitel 7   

7.3 Symbole - das symbol-Element

Das Container-Element symbol ist speziell für ein grafisches Objekt (ein Element oder eine Gruppe von Elementen) gedacht, das mit Hilfe des use-Elements referenziert werden kann, und ist deshalb innerhalb eines defs-Containers zu verwenden.

Anstelle von symbol könnte auch das g-Element verwendet werden, um ein Objekt innerhalb des defs-Containers zur mehrmaligen Verwendung festzulegen, da das symbol-Element die gleichen Eigenschaften besitzt, wie das g-Element.

Der eigentliche Unterschied ist, dass Gruppen, die nicht im Definitionsbereich platziert werden am Bildschirm zu sehen sind, während Symbole immer (!) erst referenziert werden müssen.
Weiterhin bewirkt die Verwendung des symbol-Elements eine bessere Strukturierung der Grafik, und daher eine bessere Lesbarkeit des Quellcodes.
Und Symbole sind Grundlage für Marker (Kapitel 9.9 Pfeilspitzen - das marker-Element) und Muster (Kapitel 11.3 Muster - das pattern-Element).

Beispiel Quellcode


   Grafische Darstellung:   SVG-Darstellung (nur SVG-fähige Browser!)    Screenshot JPG-Grafik
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"
  xmlns:xlink="http://www.w3.org/1999/xlink">
  <title>das symbol-Element</title>
  <desc>Referenzen - besondere Objekte: Symbole</desc>

  <defs>
    <symbol id="smilie1">
      <desc>ein Symbol-Smilie</desc>
      <circle cx="20" cy="20" r="15"
        fill="yellow" stroke="black" />
      <circle cx="15" cy="15" r="2"
        fill="black" stroke="black" />
      <circle cx="25" cy="15" r="2"
        fill="black" stroke="black" />
      <line x1="20" y1="18" x2="20" y2="23"
        stroke="black" stroke-width="2" />
      <path d="M 13 26 A 5 3 0 0 0 27 26"
        stroke="black" fill="none" stroke-width="2" />
    </symbol>
  </defs>

  <use xlink:href="#smilie1" transform="scale(2)" />
</svg>
      

Im obigen Beispiel werden 3 Kreise, eine Linie und ein Pfad (mehr dazu im Kapitel Pfade) mit Hilfe des symbol-Elements zu einem Objekt mit der eindeutigen Bezeichnung smilie1 gruppiert.

Dieses Objekt wird dann mit use referenziert und, durch die Verwendung des Attributs transform mit dem Wert scale(2), doppelt so groß am Bildschirm dargestellt - (Transformationen werden im Kapitel Transformationen näher erläutert).




index  |  Kapitel 7  |  7.2  <<  | 7.3 |  >>  7.4   Einbinden von externen Grafiken - das image-Element