Scalable Vector Graphics (SVG)



Ähnliche Dokumente
Scalable Vector Graphics (SVG)

Was ist SVG? Inhalt: Allgemeines zu SVG Besondere Merkmale Vor- und Nachteile Dateiformat Standardobjekte Koordinatensystem Beispiele Links

Version 1 SVG. Scalable Vector Graphics. B.Wenk, HTW Chur. apple ibooks Author

WEBSEITEN ENTWICKELN MIT ASP.NET

Workflow, Business Process Management, 4.Teil

SVG Skalierbare Vektorgrafiken im Netz

32.4 Anpassen von Menüs und Symbolleisten 795i

XSL Templates. Mit Templates arbeiten. XSL Templates

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

... MathML XHTML RDF

Grundlagen. 1. Grundlagen

Arbeiten mit UMLed und Delphi

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Satzhilfen Publisher Seite Einrichten

07. übung. InDesign & Photoshop. medienwerkstatt // seite 1

Word 2010 Schnellbausteine

CAD Warehouse- Verbindungen. Plattformspezifische Darstellung

Herstellen von Symbolen mit Corel Draw ab Version 9

1 Mathematische Grundlagen

impact ordering Info Produktkonfigurator

Text-Bild-Link-Editor

Bauteilattribute als Sachdaten anzeigen

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

GEONET Anleitung für Web-Autoren

6.2 Zusammenfassung der Pfadkommandos

Primzahlen und RSA-Verschlüsselung

Anleitung über den Umgang mit Schildern

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Anleitung Stempelerstellung Geocoinshop.de

PowerPoint: Text. Text

Stapelverarbeitung Teil 1

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Microsoft Access 2010 Navigationsformular (Musterlösung)

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

19. Mai 2015 L A TEX. Grafiken. Prof. Dr. Alexander Braun // Wissenschaftliche Texte mit LaTeX // WS 2014/15

Forms Composer. Document Producer 1. Document Producer

5.2 Neue Projekte erstellen

12. Dokumente Speichern und Drucken

icartoon HANDBUCH COMPOSING

Bilder zum Upload verkleinern

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Hinweise zum Übungsblatt Formatierung von Text:

Graphic Coding. Klausur. 9. Februar Kurs A

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

10.1 Auflösung, Drucken und Scannen

Visualisierung auf Büro PC s mit dem ibricks Widget

5.1 Anforderungen an die SVG-Datei

OP-LOG

Professionelle Seminare im Bereich MS-Office

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Fotos in Tobii Communicator verwenden

Microsoft Access 2013 Navigationsformular (Musterlösung)

Der PhysioNetzwerk Homepageservice ist ein Internettool im Baukastenprinzip mit Content Management Struktur.

Datenbanken Kapitel 2

Stift-Karussell in M-Plot einrichten

Erstellen eines Screenshot

Einfügen von Bildern innerhalb eines Beitrages

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Snippets - das Erstellen von "Code- Fragmenten" - 1

Im Original veränderbare Word-Dateien

BASIS Karten, WEA-Katalog, Projektierung, Objekte etc.

Eigene Formatvorlagen

Eigene Dokumente, Fotos, Bilder etc. sichern

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Verwenden von WordPad (Win7)

Grafikbausatz Overlays Profi. für iphone/pocket Visu & PC Visualisierungen

teischl.com Software Design & Services e.u. office@teischl.com

Kommunikations-Parameter

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

EINE DOKUMENTATION VERFASSEN MIT HILFE DES COMPUTERS

Die Dateiablage Der Weg zur Dateiablage

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Leichte-Sprache-Bilder

Dokumentation von Ük Modul 302

Schulung Marketing Engine Thema : Einrichtung der App

PowerPoint 2010 Eigene Folienlayouts erstellen

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

IINFO Storyboard

Kennen, können, beherrschen lernen was gebraucht wird

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

AutoTexte und AutoKorrektur unter Outlook verwenden

Hohe Kontraste zwischen Himmel und Landschaft abmildern

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

4 Aufzählungen und Listen erstellen

3 GRAFIKEN, BILDER, ZEICHNUNGSOBJEKTE

Starten sie WordPad über das Startmenü von Windows. WordPad finden Sie im Ordner Zubehör.

FIS: Projektdaten auf den Internetseiten ausgeben

Zeichen bei Zahlen entschlüsseln

Transkript:

Scalable Vector Graphics (SVG) Ausarbeitung zum Proseminar XML / World Wide Web bei Dr. Stefan Lüttringhaus-Kappel von Mark Schmatz WS 2000 / 2001

Inhaltsverzeichnis 1 Einführung 1.1 Derzeitiger Status 1.2 Was ist SVG? 1.3 SVG MIME Typ und Dateinamenendung 1.4 Kompatibilität mit anderen Standards 2 Definitionen und Begriffe 2.1 basic shape 2.2 canvas 2.3 container element 2.4 font 2.5 glyph 2.6 fill 2.7 transformation 2.8 transformation matrix 2.9 current transformation matrix (CTM) 2.10 viewport 3 Konzepte 3.1 Was heisst SVG genau? 3.1.1 Scalable 3.1.2 Vector 3.1.3 Graphics 3.2 Grafische Objekte 3.3 Symbole 3.4 Elementare Datentypen 4 Dokumentstruktur 4.1 SVG document fragment - Das <svg> Tag 4.2 Das <g> Tag 4.3 Die <desc> -und <title> Tags 4.4 Das <id> Tag 4.5 Das <defs> Tag 4.6 Das <use> Tag 4.7 Das <image> Tag 4.8 Das <text> Tag 4.9 Das <text> Tag kombiniert mit dem <tspan> Tag 4.10 Das <text> Tag kombiniert mit dem <tspan> Tag 4.11 Das <text> Tag kombiniert mit dem <tref> Tag 5 Die Styling Properties 2

6 Koordinatensysteme 6.1 SVG Canvas 6.2 SVG Viewport 6.3 Translation 6.4 Rotation 6.5 Alle Transformationen auf einen Blick 7 Pfade 7.1 Einführung 7.2 Das d Attribut 7.3 Syntax 7.4 Kommandos 7.5 Beispiel Koordinatentuppel 7.6 Text auf einem Pfad 8 Patterns 3

1 Einführung 1.1 Derzeitiger Status Die SVG Spezifikation 1.0 besagt, dass SVG momentan eine sogenannte Candidate Recommendation ist. Das bedeutet, dass die SVG Working Group es als stabil ansieht. 1.2 Was ist SVG? SVG ist eine Sprache, die es ermöglicht 2D-Grafiken und gemischte Vektor/Raster Grafiken in XML zu beschreiben. Es existieren drei grundlegende Typen von Grafikobjekten: Vector Graphic Shapes (z.b. gerade Linien und Kurven) Images Text Diese Objekte können beliebig gruppiert, verändert, transformiert und in andere Objekte eingebunden werden. SVG Grafiken können dynamisch oder interaktiv sein. Mit dem Document Object Model (DOM) kann man effiziente Vektorgrafik-Animationen erstellen. Ein grosser Satz von verfügbaren Eventhandlern, wie z.b. onmouseover und onclick, kann mit jedem SVG-Grafikobjekt kombiniert werden. 1.3 SVG MIME Typ und Dateinamenendung Der MIME Typ für SVG ist: image/svg-xml. Der W3C wird diesen MIME Typ registrieren lassen. SVG Dateien sollten mit.svg_ enden (alles klein geschrieben, ein Leerzeichen am Ende!). 1.4 Kompatibilität mit anderen Standards SVG ist kompatibel zu anderen W3C Standards und enthält viele bekannte Features. Beispiele SVG ist eine Anwendung von XML SVG ist kompatibel zu den Namespaces in XML SVG benutzt die XML Linking Language (XLink) zur URL-Referenzierung SVG Inhalte können entweder mit CSS Level 2 oder mit XSL Version 1 bearbeitet werden SVG ist kompatibel zu den Internationalisierungsbestrebungen des W3C (Bsp. Unicode) u.v.m. Damit ist SVG ein mächtiges Werkzeug und gleichzeitig sehr leicht zu bedienen. 4

2 Definitionen und Begriffe 2.1 basic shape Basic Shapes sind Standard-Grafikobjekte, wie rect, circle, ellipse, line, polyline, polygon 2.2 canvas Canvas ist eine Oberfläche, auf der grafische Objekte plaziert werden können. Das kann eine real existierende physikalische Oberfläche sein, wie z.b. ein Display oder ein Blatt Papier; das kann aber auch eine abstrakte Oberfläche sein, wie z.b. ein bestimmter Speicherbereich im RAM 2.3 container element Ein Container Element enthält Grafikelemente und/oder andere container elements 2.4 font Ein Font ist eine organisierte Kollektion von glyphs. Die einzelnen glyphs innerhalb der Kollektion haben ein gemeinsames Thema in Puncto Aussehen 2.5 glyph Ein glyph ist eine einzelne Einheit innerhalb eines fonts (z.b. ein Buchstabe). Es kommt aber auch vor, dass ein (darzustellendes) Zeichen aus mehreren glyphs besteht (z.b. é, â, etc.) 2.6 fill Der Befehl fill füllt das Innere eines shapes oder eines glyphs (in einem Textstring) aus 2.7 transformation Eine transformation ist eine Modifikation der current transformation matrix (CTM) indem eine evtl. aufwendige Transformation eines Grafikobjektes durch eine Menge von simplen Transformationen (z.b. Skalierung, Rotation, Translation) und/oder durch eine oder mehrere transformation matrices erreicht wird 2.8 transformation matrix Transformationsmatrizen definieren eine Abbildung von einem Koordinatensystem in ein anderes indem eine 3x3-Matrix verwendet wird 5

2.9 current transformation matrix (CTM) wie transformation matrix, nur dass die Abbildung vom user coordinate system in das viewport coordinate system geht 2.10 viewport Ein Viewport ist eine rechteckige Region innerhalb des aktuellen canvas, auf dem die Grafikelemente gerendert werden 6

3 Konzepte 3.1 Was heisst SVG genau? 3.1.1 Scalable Skalierbar bedeutet, dass man gleichmässig vergrössern und verkleinern kann. Bezogen auf Grafik heisst das, dass man nicht auf eine einzige, feste Pixelgrösse beschränkt ist (Raster- Only). Im Internet bedeutet skalierbar, dass alles erweitert und angepasst werden kann: die Anzahl der Dateien und der User, die Anwendungen, und, und, und... 3.1.2 Vector SVG ist eine Grafikanwendung für das Internet und ist deshalb skalierbar sowohl im Sinne der Grafikterminologie, als auch im Sinne des Internets. Vektorgrafiken enthalten geometrische Objekte, wie Linien und Kurven. Das bedeutet grössere Flexibilität gegenüber dem sogenannten Raster-Only-Formats, wie JPEG oder GIF, das Informationen zu jedem einzelnen Pixel abspeichern muss. 3.1.2 Graphics Die meisten XML Sprachen repräsentieren textbasierte Informationen. Sie bieten nur primitive grafische Möglichkeiten, wie z.b. das <img> Tag von HTML. SVG hingegen hält eine grosse Menge von Beschreibungsmöglichkeiten bereit, mit denen man Vektorgrafiken bzw. gemischte Vektor-/Rastergrafiken erstellen kann. 3.2 Grafische Objekte Bei jeder XML Sprache wurde überlegt, was genau eigentlich modelliert werden soll. Bei textbasierten Formaten findet Modellierung typischerweise auf der Ebene von Seiten, Absätzen, Sätzen, etc. statt und nicht bei jedem einzelnen Wort. Bei SVG ist das nicht anders: hier findet Modellierung auf der Ebene von Grafischen Objekten statt und nicht bei jedem einzelnen Punkt bzw. Pixel. Logisch Zusammengehöriges wird zusammengefasst. 7

3.3 Symbole Man könnte einige Standardsymbole definieren, die SVG unterstützt. Welche sollten das sein? Es gibt immer Bereiche, in denen man weitere Symbole brauchen könnte: Elektronik Chemie Musik etc. Anstatt immer auf die nächste Version zu warten, ist es dem User möglich eigene Symbole zu kreieren, die er frei zur Verfügung stellen kann. 3.4 Elementare Datentypen <angle> Winkel (deg, rad, grad) <color> Farbe (Bsp.: lightpink = rgb(255, 182, 193)) <coordinate> Koordinaten <integer> Ganze Zahlen: von -2147483648 bis 2147483647 <number> <length> <uri> Gleitpunktzahlen: von -3,4e+38 bis 3,4e+38 siehe <number> Webadresse u.v.m. 8

4 Dokumentstruktur 4.1 SVG document fragment - Das <svg> Tag Ein SVG document fragment besteht aus sämtlichen SVG Elementen innerhalb eines <svg> Tags. Ein SVG document fragment kann: leer sein (also kein Inhalt innerhalb des <svg> Tags) ein einzelnes Grafikelement enthalten (z.b. rect) eine komplexe, tief verschachtelte Kollektion von Container- und Grafikelementen sein Ein SVG document fragment kann entweder: Beispiel für sich alleine stehen (z.b. als eigenständige Datei) => heisst dann SVG document oder in ein XML Document eingebettet sein <svg width= 5cm height= 4cm > <desc>four separate rectangles</desc> <rect x= 0.5cm y= 0.5cm width= 2cm height= 1cm /> <rect x= 0.5cm y= 2cm width= 1cm height= 1.5cm /> <rect x= 3cm y= 0.5cm width= 1.5cm height= 2cm /> <rect x= 0.5cm y= 0.5cm width= 1cm height= 0.5cm /> 4.2 Das <g> Tag Das <g> Tag dient der Gruppierung von Grafikelementen, wenn z.b. mehrere Grafikelemente die gleichen Attribute verwenden. Beispiel 1 <svg width= 5cm height= 5cm > <desc>two Groups, each of two rectangles</desc> <g style= fill:red > <rect x= 1cm y= 1cm width= 1cm height= 1cm /> <rect x= 3cm y= 1cm width= 1cm height= 1cm /> 9

(Fortsetzung) <g style= fill:blue > <rect x= 1cm y= 3cm width= 1cm height= 1cm /> <rect x= 3cm y= 3cm width= 1cm height= 1cm /> Das <g> Tag kann verschachtelt werden. Beispiel 2 <svg width= 4in height= 3in > <desc>groups can nest</desc> <g> <g> <g> 4.3 Die <desc> -und <title> Tags Jedes Container- und Grafikelement kann mit einem <desc> und/oder <title> Tag versehen werden. Innerhalb dieser Tags steht ein String, der das Element beschreibt. Diese Beschreibungen sind nur-text. Sie werden also nicht mit dem betreffenden Element gerendert. Die Darstellung der Beschreibungen kann variieren. Möglich ist z.b. eine Darstellung, die der Form der klassischen Tool-Tips nahe kommt. Beispiel 1 Eine Ellipse 10

Beispiel 2 Der Text innerhalb der <desc> -und <title> Tags wird nicht gerendert. Der Rest, der innerhalb des <g> Tags steht, wird aber gerendert. <svg width= 4in height= 3in > <g> <title> Company sales by region </title> <desc> Company sales by region </desc> <!-- Bar chart defined as vector data --> 4.4 Das <id> Tag Das <id> Tag ist für alle SVG Elemente verfügbar. Es weist einem Element einen eindeutigen Namen zu. Beispiel <svg width= 4in height= 3in > <rect id= MyRect x=0 y=0 width= 6cm height= 1cm /> 4.5 Das <defs> Tag Das <defs> Tag ist - ähnlich, wie das <g> Tag - ein Container für weitere Elemente. Der Aufbau ist der gleiche, wie beim <g> Tag. Unterschied: die in einem <defs> Tag angegebenen Elemente werden (noch) nicht angezeigt. Beispiel 11

(Fortsetzung) <svg width= 10cm height= 3cm > <defs> <rect id= MyRect width= 6cm height= 1cm /> </defs> 4.6 Das <use> Tag Jedes Grafik- und Containerelement (und noch einige andere) ist ein sogenanntes Template Object, das im SVG Document wiederverwendet werden kann. Realisiert wird das mittels dem <use> Tag. Es referenziert auf ein anderes Element und fügt den grafischen Inhalt des betreffenden Elements an der angegebenen Stelle in das Dokument. Beispiel 1 <svg width= 10cm height= 3cm > <desc>simple case of use on a rect </desc> <defs> <rect id= MyRect width= 6cm height= 1cm /> </defs> <!-- Bla Bla --> <use x= 2cm y= 1cm xlink:href= #MyRect /> Beispiel 2 <svg width= 10cm height= 3cm > <desc>simple case of use on a rect </desc> <defs> <rect id= MyRect x=0 y=0 width= 6cm height= 1cm /> </defs> <!-- Bla Bla --> <use xlink:href= #MyRect transform= translate(2cm, 0.25cm); rotate(10) /> 12

(Fortsetzung) 4.7 Das <image> Tag Das <image> Tag wird benutzt, um den Inhalt einer ganzen Datei in das gegebene user coordinate system zu rendern. Das <image> Tag kann entweder auf Raster-Image-Dateien (z.b. PNG oder JPEG) referenzieren, oder auf Dateien, die dem MIME Typ image/svg-xml entsprechen. Wenn auf eine Raster-Image-Datei verwiesen wird, dann wird das entsprechende Bild genau in die durch die Attribute x, y, width und height spezifizierte Region gerendert. Wenn auf eine SVG Datei verwiesen wird, dann legt das <image> Tag ein neues Viewport für diese Datei an. Beispiel <svg width= 20cm height= 20cm > <desc>this graphic links to an external image</desc> <image x= 200 y= 200 width= 100px height= 100px xlink:href= myimage.jpg > <title>my Image</title> </image> 4.8 Das <text> Tag Die in einem <text> Tag stehenden Zeichen, werden gerendert. Beispiel 13

(Fortsetzung) <svg width= 10cm height= 3cm > <desc>a text sample</desc> <text x= 2cm y= 1cm style= font-size:20; font-family:times New Roman > This text will be rendert. </text> This text will be rendert. 4.9 Das <text> Tag kombiniert mit dem <tspan> Tag Mit <tspan> kann man einzelne Worte verschieden formatieren. Beispiel <svg width= 10cm height= 3cm > <g style= font-size:20; font-family:times New Roman > <text x= 2cm y= 1.5cm style= fill:blue > You are <tspan style= font-weight:bold; fill:red >not</tspan> a banana. </text> You are not a banana. 14

4.10 Das <text> Tag kombiniert mit dem <tspan> Tag Mit <tspan> kann man auch einzelne Glyphs individuell positionieren. Beispiel <svg width= 10cm height= 3cm > <g style= font-size:20; font-family:comic Sans MS > <text style= fill:rgb(20, 160, 200) > <tspan x= 3.0cm 3.5cm 4.0cm 4.5cm 5.0cm 5.5cm 6.0cm 6.5cm y= 1cm > Cute and </tspan> <tspan x= 3.75cm 4.25cm 4.75cm 5.25cm 5.75cm y= 2.00cm 2.00cm 2.50cm 2.50cm 2.00cm > fuzzy </tspan> </text> C u t e a n d f u z z y z z 4.11 Das <text> Tag kombiniert mit dem <tref> Tag Das <tref> Tag dient dem Einfügen von referenziertem Text. Beispiel <svg width= 10cm height= 3cm > <defs><text id= ReferencedText >Referenced character data</text></defs> <text x= 2cm y= 1cm style= fill:blue > Inline character data </text> <text x= 2cm y= 2cm style= fill:red > <tref xlink:href= #ReferencedText /> </text> 15

(Fortsetzung) Inline character data Referenced character data 16

5 Die Styling Properties Mit Styling Properties spezifiziert man, wie Beispiel grafische Objekte gemalt werden sollen (Füllung, Linienbreite, etc.) Text aussehen soll (Font, Fontgrösse, etc.) grafische Elemente gerendert werden sollen (Clipping Paths, Masken, Filtereffekte, etc.) u.v.m. <svg width= 4in height= 3in > <rect x= 2cm y= 1cm width= 6cm height= 1cm fill= red stroke= blue /> 6 Koordinatensysteme 6.1 SVG Canvas beschreibt (abstrakt), wo SVG Elemente hin- gerendert werden sollen erstreckt sich unendlich in alle Dimensionen 6.2 SVG Viewport Bezugssystem eine endliche rechteckige Region hierhin werden alle SVG Elemente (tatsächlich) gerendert 17

(Fortsetzung) Canvas Viewport 6.3 Translation Beispiel <svg width= 20cm height= 10cm > <!-- Original Coordsystem --> <g style= fill:none; stroke:black; stroke-width:3 > <line x1= 0cm y1= 0cm x2= 10cm y2= 0cm /> <line x1= 0cm y1= 0cm x2= 0cm y2= 5cm /> <!-- New Coordsystem --> <g transform= translate( 3cm, 2cm ) > <g style= fill:none; stroke:red; stroke-width:3 > <line x1= 0cm y1= 0cm x2= 10cm y2= 0cm /> <line x1= 0cm y1= 0cm x2= 0cm y2= 5cm /> 18

6.4 Rotation Beispiel <svg width= 20cm height= 10cm > <!-- Original Coordsystem --> <g style= fill:none; stroke:black; stroke-width:3 > <line x1= 0cm y1= 0cm x2= 10cm y2= 0cm /> <line x1= 0cm y1= 0cm x2= 0cm y2= 5cm /> <!-- New Coordsystem --> <g transform= translate( 3cm, 2cm ) > <g transform= rotate(30) > <g style= fill:none; stroke:red; stroke-width:3 > <line x1= 0cm y1= 0cm x2= 10cm y2= 0cm /> <line x1= 0cm y1= 0cm x2= 0cm y2= 5cm /> 6.5 Alle Transformationen auf einen Blick Verschieben Rotieren Skalieren Neigen (X-Richtung) Neigen (Y-Richtung) translate(dx, dy) rotate(degree) skale(skalefactor) skewx(degree) skewy(degree) Alle Transformationen können als 3x3 Transformations-Matrix repräsentiert werden (siehe LA I+II). A d g b e h c f i 19

7 Pfade 7.1 Einführung Pfade beschreiben das Aussehen eines Grafikobjektes. Eine Grafik, die durch einen Pfad erstellt wurde, besitzt die gleichen Eigenschaften, wie Standard - Grafikobjekte (z.b. rect) auch. Ein Pfad wird definiert, indem man das <path> Tag einfügt. Analogie: Turtle-Grafik 7.2 Das d Attribut Innerhalb des <path> Tags steht das sogenannte d (= Path data ) Attribut. Das d Attribut enthält Anweisungen für: moveto lineto curveto arc closepath setzt einen neuen Anfangspunkt zeichnet eine gerade Linie zeichnet eine Kurve (verwendet cubic Bézier) zeichnet einen elliptischen oder kreisförmigen Bogen schliesst die aktuelle Form, indem eine Linie zum letzten moveto- Punkt gezeichnet wird 7.3 Syntax Es gibt weitere Kommandos M/m... Grossbuchstabe = abs. Koordinaten Kleinbuchstabe = rel. Koordinaten d= L/l Z/z Coord = Closepath (zurück zum Ursprung) 20

Beispiel 1 d= M 100 100 L 300 100 L 200 300 z moveto(100, 100) lineto(200, 300) lineto(300, 100) lineto(100, 100) Beispiel 2 <svg width= 4cm height= 4cm > <path d= M 100 100 L 300 100 L 200 300 z style= fill:red; stroke:blue; stroke-width:3 /> 21

7.4 Kommandos Koordinatentuppel sind möglich Kommando Name Parameter Beschreibung M (abs.) Beginnt einen neuen Pfad an der moveto (x y)+ angegebenen Position. Wenn m das erste m (rel.) Kommando ist, dann wird es als M Z / z closepath - Schliesst interpretiert. den aktuellen Pfad, indem eine gerade Linie von der aktuellen Position zum Startpunkt gezeichnet wird. L (abs.) Zeichnet eine Line vom aktuellen Punkt zur lineto (x y)+ l (rel.) angegebenen (x, y)-koordinate. H (abs.) h (rel.) V (abs.) v (rel.) C (abs.) c (rel.) S (abs.) s (rel.) Q (abs.) q (rel.) T (abs.) t (rel.) A (abs.) a (rel.) horizontal lineto vertical lineto curveto shorthand / smooth curveto quadratic Bézier curveto shorthand / smooth quadratic Bézier x+ y+ (x1 y1 x2 y2 x y)+ (x2 y2 x y)+ Zeichnet eine horizontale Line vom aktuellen Punkt zur angegebenen x-koordinate. Zeichnet eine vertikale Line vom aktuellen Punkt zur angegebenen y-koordinate. Zeichnet eine Bézier-Kurve vom aktuellen Punkt (x y). (x1 y1) ist der Kontrollpunkt zu Beginn der Kurve. andere Bézierkurve... (x1 y1 x y)+ andere Bézierkurve... (x y)+ andere Bézierkurve... elliptical arc (rx ry x-axis-rotation laf sf x y)+ Zeichnet eine Ellipse... 7.5 Beispiel Koordinatentuppel <svg width= 4cm height= 4cm > <path d= M 100 100 L 300 100 200 300 100 100 style= fill:red; stroke:blue; stroke-width:3 /> 22

7.6 Text auf einem Pfad Mit dem <path> Tag kann man Text frei positionieren. <svg width= 10cm height= 3cm viewbox= 0 0 1000 300 > <defs> <path id= MyPath d= M 100 200 C 200 100 300 0 400 100 C 500 200 600 300 700 200 C 800 100 900 100 900 100 /> </defs> <use xlink:href= #MyPath style= fill:none; stroke:red /> <text style= font-family:verdana; font-size:42.3333; fill:blue > <textpath xlink:href= #MyPath > We go up, then we go down, then up again </textpath> </text> 8 Patterns Mit dem <pattern> Tag kann man die Füllung für ein Grafikobjekt selbst definieren. <svg width= 8cm height= 4cm > <defs> <pattern id= TrianglePattern x= 0 y= 0 width= 1cm height= 1cm viewbox= 0 0 10 10 > <path d= M 0 0 L 7 0 L 3.5 7 z style= fill:red; stroke:blue /> </pattern> </defs> <!-- Ellipse is filled using a triangle pattern paint server --> <ellipse style= fill:url(#trianglepattern); stroke:black cx= 4cm cy= 2cm rx= 3.5cm ry= 1.5cm /> 23

24