Multimediatechnologie



Ähnliche Dokumente
Scalable Vector Graphics (SVG)

GEONET Anleitung für Web-Autoren

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

HTML5. Wie funktioniert HTML5? Tags: Attribute:

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

Kapitel 3 Frames Seite 1

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Scalable Vector Graphics. Ulrich Hoffmann

Satzhilfen Publisher Seite Einrichten

SCRIBUS WORKSHOP Handout Gimp

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Einführung Responsive Webdesign

CSS. Cascading Stylesheets

Favoriten sichern. Sichern der eigenen Favoriten aus dem Webbrowser. zur Verfügung gestellt durch: ZID Dezentrale Systeme.

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

HTML Programmierung. Aufgaben

SVG Skalierbare Vektorgrafiken im Netz

Die XML-basierten Grafikformate SVG und XVL - eine Revolution der technischen Dokumentation?

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Ihr CMS für die eigene Facebook Page - 1

SICHERN DER FAVORITEN

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

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße Reutlingen

iphone-kontakte zu Exchange übertragen

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

Barrierefreie Webseiten erstellen mit TYPO3

Produktschulung WinDachJournal

Adobe Flash CS4»3D-Tool«

Adobe Reader X Plug-in von Mozilla Firefox verwenden

Symbollinientypen einfacher erstellen

Herstellen von Symbolen mit Corel Draw ab Version 9

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Programm GArtenlisten. Computerhinweise

Erstellen einer digitalen Signatur für Adobe-Formulare

Vektoren mit GeoGebra

Arbeiten mit UMLed und Delphi

Drucken von Webseiten Eine Anleitung, Version 1.0

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Übung 1. Explorer. Paint. Paint. Explorer

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Anleitung für die Formularbearbeitung

3. GLIEDERUNG. Aufgabe:

Erstellen einer PostScript-Datei unter Windows XP

Eigenen Farbverlauf erstellen

Bauteilattribute als Sachdaten anzeigen

Java Script für die Nutzung unseres Online-Bestellsystems

4 Aufzählungen und Listen erstellen

Mit jedem Client, der das Exchange Protokoll beherrscht (z.b. Mozilla Thunderbird mit Plug- In ExQulla, Apple Mail, Evolution,...)

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Primzahlen und RSA-Verschlüsselung

Meine erste Homepage - Beispiele

Office-Programme starten und beenden

WEBSEITEN ENTWICKELN MIT ASP.NET

Was man mit dem Computer alles machen kann

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Die i-tüpfelchen: Favicons

Im Original veränderbare Word-Dateien

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

32.4 Anpassen von Menüs und Symbolleisten 795i

Zeichen bei Zahlen entschlüsseln

DATENFORMATE IM INTERNET

Installation des Zertifikats. Installationsanleitung für Zertifikate zur Nutzung des ISBJ Trägerportals

Outlook-Daten komplett sichern

Tevalo Handbuch v 1.1 vom

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

Animationen erstellen

Mediator 9 - Lernprogramm

Grundlagen von Corel Draw

Grundlagen der Theoretischen Informatik, SoSe 2008

Erste Schritte mit Sharepoint 2013

1. Einführung. 2. Die Abschlagsdefinition

Fotos verkleinern mit Paint

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Dokumentation von Ük Modul 302

Handbuch für Redakteure

Anleitung BFV-Widget-Generator

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Arbeiten mit den Mastercam Werkzeug-Managern

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

WORKSHOP für das Programm XnView

Handbuch für Redakteure

Lernwerkstatt 9 privat- Freischaltung

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

5.2 Neue Projekte erstellen

Revit Modelle in der Cloud: Autodesk 360 Mobile

Design anpassen eine kurze Einführung

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Anleitung für Berichte in Word Press, auf der neuen Homepage des DAV Koblenz

plus Flickerfeld bewegt sich nicht

ÖKB Steiermark Schulungsunterlagen

Persönliches Adressbuch

Hinweise zum Übungsblatt Formatierung von Text:

Informationen zur Verwendung von Visual Studio und cmake

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Kapitel 3 Bilder farblich verändern - Arbeiten mit Objekten

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Transkript:

Einführung in die XML-Sprache Scalable Vector Graphics 26.11.2012/1

SVG woher und wohin... 26.11.2012/2

http://svgopen.org/2012/ 26.11.2012/3

http://svgopen.org/ 26.11.2012/4

SVG Open 2010, Paris http://www.svgopen.org/2010/ 26.11.2012/5

26.11.2012/6

RaphaëlJS Die Idee von RaphaëlJS ist es, mit JavaScript eine Bibliothek aufzubauen, die bei Animationen nach dem Trickfilmprinzip 25 Grafiken pro Sekunde generiert und über eine Browserweiche SVG und VML als Vektorgrafiken ausgibt. http://raphael.com, http://g.raphael.com http://emunch.co.uk/experiments/mickey_mouse_raphael/ http://net.tutsplus.com/tutorials/javascript-ajax/an-introduction-to-theraphael-js-library/ http://onlypaths.com/aaopblog/2009/11/7/index.htm http://www.irunmywebsite.com/raphael/raphaelsource.html 26.11.2012/7

d3.js d3.js ist eine mächtige Bibliothek zur Datenvisualisierung in dynamischer Anpassung an Veränderungen der Daten im Hintergrund der Darstellung. Für die Datendarstellung werden umfangreiche Grafik-Widgets bereitgestellt. (s. http://d3js.org) 26.11.2012/8

SVG-Modul von jquery jquery SVG ist ein Plug-In für das JavaScript- Framework jquery von Keith Wood. Es wird periodisch angepasst, zuletzt am 23.07.2011 an jquery 1.5 und 1.6. Der Abdeckungsgrad von SVG ist schon recht gut, es wird von der Community angenommen. Animationen werden aber nur mit SMIL-Philosophie angeboten, im Widerspruch zum Charakter als Plug-In in eine JS-Welt. (http://keith-wood.name/svg.html) 26.11.2012/9

Ample SDK Ample SDK soll komplexe grafische Interaktionsoberflächen aus einer Quellcodequelle heraus erzeugbar werden lassen. Für die Zeitorganisation und Zeitsynchronisation werden entsprechende Module aus SMIL 3.0 genutzt. An grafischen Oberflächensprachen werden SVG 1.1, XUL, XHTML 1.1 mit HTML5, SMIL Animationen, Google Maps über AML und ggf. andere unterstützt und eingebunden. www.amplesdk.com/reference/,./tutorials/articles/solution/ 26.11.2012/10

SVGweb von Google u.a. SVG Web ist eine JavaScript-Bibliothek die SVG in vielen Standardbrowsern unterstützt (u.a. Internet Explorer, Firefox, Safari). Damit werden zusammen mit Original-SVG 95% des Webs erreicht. (http://code.google.com/p/svgweb/) JSXGraph is a cross-browser library for interactive geometry, function plotting, charting, and data visualization in a web browser. It is implemented completely in JavaScript and uses SVG and VML. (http://jsxgraph.uni-bayreuth.de/wp/) 26.11.2012/11

dōjō gfx / dōjōx In dōjō 1.8 werden Vektorgrafikfunktionalitäten bereitgestellt für: SVG (Firefox 1.5-3.0, Safari (Webkit) 3+, Opera 9+, Chrome 1.0+, iphone Safari 2.1+) VML (IE 6-8) Silverlight (wherever it is supported by Microsoft) Canvas (Firefox 3.0+, Safari 3.0+ including ios Safari 1.0+, Opera 9+, Chrome, IE9+) (http://docs.dojocampus.org/dojox/gfx - bis 2009, http://dojotoolkit.org/reference-guide/1.8/dojox/gfx.html) 26.11.2012/12

Scalable Vector Graphis SVG ist ein XML-Standard des W3C, d.h. es ist strukturiertes Textformat Ziel ist die Erstellung komplexer zweidimensionaler Vektorgrafiken zur Darstellung mit SVG-Applikationen oder in Webbrowsern (per plug-in Animation bzw. Interaktivität sind zusätzliche Features von SVG Single Sourcing Text, Bild und Animation können aus einer Quelldatei kommen 26.11.2012/13

Geschichtliches Erste Konzepte entstanden 1998: Adobe, IBM, Netscape und Sun reichten beim W3C eine Note über die Precision Graphics ML ein, die an PostScript angelehnt entwickelt worden war. (April 1998) Gleichzeitig reichten Hewlett Packard, Microsoft, Macromedia und Visio ihren Vorschlag der Vector ML beim W3C ein. (Mai 1998 bis heute) Vorschlag von PRP und Orange PCSL: HGML. Zusammenfassung der Konzepte zu SVG erfolgte im Oktober 1998. 26.11.2012/14

Geschichtliches Die unterschiedlichen Wurzeln von SVG hatten vor allem unterschiedliche Ansätze zur Schaffung von Grafik-Elementen in Websites. Dadurch gab/gibt es auch Vor- und Nachteile der Vorgänger von SVG, bzw. nicht inbegriffene Features und Anwendungsgebiete. Trotzdem gibt es auch weiterhin parallele Vorstöße zu Neuentwicklungen im Grafikbereich z.b. DrawML (www.drawml.org). 26.11.2012/15

Geschichtliches W3C SVG Working Group Adobe, Apple, Autodesk, Canon, Corel, HP, IBM, Kodak, Macromedia, Microsoft, Netscape/AOL, Quark, Sun, Xerox, u.a. SVG 1.0 wurde offiziell am 04.09.2001 zur Recommendation des W3C (rund 600 DIN-A4-Seiten) technische Angaben zum Aufbau von SVG, die DTD und DOM-Interfaces zu SVG. SVG 1.1 ist Recommendation seit 14.01.2003. SVG 1.2 Tiny ist Recommendation seit 22.12.2008. 26.11.2012/16

Die Konkurrenz Die Konkurrenz zu SVG ist im Bereich proprietärer Datenformate doch recht beeindruckend - siehe http://en.wikipedia.org/wiki/image_file_formats# Vector_formats. Im Bereich der im Internet häufig genutzten Formate ist sie jedoch überschaubar... 26.11.2012/17

Die Konkurrenz: VML Seit 1998 ist VML von Microsoft stetig weiterentwickelt und u.a. in den Office-2000/2007/2010- Paketen durchgängig für Grafikelemente implementiert worden. Auch der IE kann per plugin VML-teilfähig gemacht werden, außer auf Mac. VML ist eher auf einfache Grafiken ausgerichtet, die keine besonderen künstlerischen Gestaltungsmerkmale aufweisen. Sie kennen das aus MS Word bzw. MS PowerPoint. Beispiel Ansicht: MS Word, Datei Datei/Als Webseite speichern 26.11.2012/18

Die Konkurrenz: SWF (Flash) Gegen einen Umstieg von Flash auf SVG können Anwendungsziele, aber auch Arbeitsgewohnheiten sprechen. Es gibt z.b. noch kein vergleichbares SVG- Animationstool wie Adobe Flash für Flash. Auch Adobe hat SVG dort noch nicht integriert. Es gibt jedoch strategische Vorteile von SVG, wie etwa die Durchsuch- und Indexierbarkeit des Dateiinhalts (für DBs) oder... 26.11.2012/19

Die Konkurrenz: SWF (Flash) SVG braucht nur Text-Editoren und SVG-Viewer (als plug-in) im Webbrowser, bei Flash sind alle auf (kostenpflichtige) Tools angewiesen. Flash liegt im verkapselten Binärformat vor, SVG ist XML also offener, strukturierter Quellcode. Hier ist abzuwägen, ob der mögliche Zugriff in der Anwendung erwünscht ist. SVG soll Verschlüsselungsalgorithmen erhalten. SVG-Grafiken lassen sich mit Hilfe vieler Scriptsprachen generieren, Flash hat eine intern. 26.11.2012/20

Die Konkurrenz: SWF (Flash) In Flash kann ActionScript eingebunden werden. SVG unterstützt ECMAScript und JavaScript. Bilder werden in Flash i.d.r. eingebettet, erst neuerdings auch referenziert. Damit werden nachträgliche Änderungen an Bildern mitunter problematisch. In SVG kann man Bilder mit <image> referenzieren, aber auch mit base64 in CDATA einbetten. Farben werden in Flash in einem eigenen RGB- Farbraum dargestellt, SVG unterstützt srgb. 26.11.2012/21

Die Konkurrenz: SWF (Flash) Farben: Außerdem können in SVG ICC-Profile referenziert werden, die Unterstützung von CMYK und PANTONE ist angedacht. Animationen werden in Flash über Frames erzeugt. SVG kann das auch, zusätzlich gibt es aber die Möglichkeit der Interpolation von Veränderungen an/mit Grafiken. www.carto.net/papers/svg/comparison_flash_svg.html broadway.cs.nott.ac.uk/projects/svg/flash2svg/ www.ep.cs.nott.ac.uk/~sgp/swf2svg.html 26.11.2012/22

Vorteil von SVG Ein entscheidender Vorteil von SVG tritt beim Einsatz mehrerer Spezialapplikationen im Fertigungsprozess zu Tage: Die SVG-Datei kann ohne Probleme in jeder Applikation geöffnet und weiterbearbeitet werden. Dort können dann deren Stärken gezielt genutzt werden... Bei Flash stört das Binärformat mitunter die korrekte Rekonstruktion der Quelle. SVG ist ein ideales Austauschformat! 26.11.2012/23

2D und 3D? SVG ist grundsätzlich für 2D-Vektorgrafiken konzipiert. 3D-Grafiken werden mit VR(Virtual Reality)-Sprachen beschrieben, die u.a. auch dynamisches Navigieren in der Grafik unterstützen. Das wären z.b. VRML bzw. X3D, Collada. Das W3C wird hauspolitisch die Feature beider Sphären (2D und 3D) immer getrennt halten. Gleichzeitig könnte beides immer in einer Applikation zugleich verwendet werden. 26.11.2012/24

Die Werkzeuge Editoren: Es ist jeder Text-Editor prinzipiell geeignet, so z.b. NotePad, TextPad, WordPad,... Des Weiteren sind XML-Editoren zu empfehlen, so z.b. XMLspy, XMetal, Eclipse++, u.a.. Adobe Illustrator kann Grafiken als SVG in zwei Varianten importieren und exportieren (MM-Pool) Corel DESIGNER unterstützt seit Technical Suite X4 SVG (www.corel.com) 26.11.2012/25

Die Werkzeuge Im MM-Pool kann man mit dem SVG-Editor Inkscape arbeiten, der die Zeichnungen dann in SVG exportiert. (www.inkscape.org) II 26.11.2012/26

Die Werkzeuge AKs SVG Editor, leistungsstark in Grafiken (www.krammel.net) Zahlreiche weitere SVG- Editoren... 26.11.2012/27

Die Werkzeuge Wandler von Rastergrafiken in SVG-Grafiken online: http://www.autotracer.org/ 26.11.2012/28

Viewer: Die Werkzeuge SVG-Viewer von Adobe (plug-in im IE6-8, für OS Windows, MacOS, Solaris, RedHat-Linux; für Netscape, IE, RealPlayer, Opera,... www.adobe.com/svg/viewer/install/main.html Batik SVG-Browser von Apache (standalone), entwickelt zusammen mit Sun, IBM, ILOG. xml.apache.org/batik/, v. 1.7 Es gibt sicher weitere Werkzeuge... 26.11.2012/29

Erste Schritte 26.11.2012/30

Vektorgrafik im Detail Die Beschreibung von Details von Vektorgrafiken bezieht sich grundsätzlich auf folgende Fakten: Lage charakteristischer Punkte Richtung der Pfade Verlauf der Pfadsegmente (Kurven, Strecken) Zusammenschluss von Pfaden zu Flächen Ebenenreihenfolge der Elemente (vorn, hinten) Formatierungen 26.11.2012/31

Zusammensetzung Vektorgrafiken werden grundsätzlich in SVG aus einfachen Elementen zusammengesetzt. Besonders zu beachten ist die Ebenenreihenfolge, da die Elemente zum Teil übereinander bzw. überlappend angeordnet werden. Als Beispiel nehmen wir Abb. 3.3, S. 70, aus [Fibinger]. 26.11.2012/32

Zusammensetzung [aus Fibinger] 26.11.2012/33

Zusammensetzung Flächenfarben und Linienstärken sind Formatierungen, die nachträglich den eigentlichen Vektoren bzw. Pfaden zugewiesen wurden. Das Zeichen steht für Schrift im allgemeinen. TrueType- und PostScript-Zeichensätze sind Vektorgrafiken mit zusätzlichen typografischen Informationen. Ohne mit Vektoren unbedingt rechnen zu wollen, sollte die Darstellung P1=(2,3), P2=(4,2) präsent sein. 26.11.2012/34

Vektordarstellung [aus Fibinger] 26.11.2012/35

Punktpositionen Die Positionen von Punkten können in SVG absolut (d.h. bezogen auf den Nullvektor (0,0)) und relativ (d.h. bezogen auf ein zuvor benanntes Objekt) angegeben werden. Beide Positionsangaben sind in der Vektorgrafik möglich und sollen nun am SVG-Beispiel gezeigt werden: Man beschreibe den im Bild mit Koordinaten bezeichneten Pfad in SVG... 26.11.2012/36

Punktpositionen [aus Fibinger] 26.11.2012/37

SVG-Pfadbeschreibung Absolute Positionen = große Buchstaben Relative Positionen = kleine Buchstaben <path d="m0,0 L200,200 L300,200" /> <path d="m0,0 l200,200 l100,0" /> Erklärung: Der Weg wird in Reihenfolge von drei Punkten aufgebaut. Im ersten Fall sind deren Koordinaten benannt, im zweiten Fall sind die Koordinaten der Verschiebungsrichtung relativ zum Vorgänger benannt! 26.11.2012/38

Behauptung: Frage Diese SVG-Syntax beschreibt nur den gedachten Streckenzug und würde im SVG-Viewer ein leeres Bild ergeben. Warum? Weil keine Formatierungen angegeben sind. 26.11.2012/39

SVG-Beschreibung Ob Sie das begriffen haben, zeigt sich nun in den absoluten und relativen Beschreibungen des exakt inversen Weges: <path d="m300,200 L200,200 L0,0" /> <path d="m300,200 l-100,0 l-200,-200" /> Die Richtung des Pfades ist von Bedeutung bei Pfeilspitzen zu einem Knoten des Pfades, bei Linienmustern von einem Knoten weg, und bei Pfaden mit Fehlstücken bzw. sich überlappenden Flächen. 26.11.2012/40

Pfadbeschreibungen Zwei Punkte sind über unendlich viele Pfade miteinander verbindbar, der kürzeste ist in 2D die gerade Linie. Beispiel: Man verbinde drei Punkte, die ersten zwei mit einer Strecke, den zweiten mit dem dritten mit einer (nicht-geraden) Kurve. 26.11.2012/41

Pfadbeschreibungen [aus Fibinger] 26.11.2012/42

Warnung Die Zeichnung zeigt die Formatierungen der Vektorgrafik, aber nicht die Vektorgrafik selbst! Die Vektorgrafik ist ohne Formatierungen unsichtbar und reiner Quellcode. Dadurch kommt die XML-typische Trennung von Struktur und Formatierung zum Ausdruck. Die Pfade sind das mathematisch ausgedrückte Grundgerüst, das mit sichtbaren Eigenschaften wie Farbe, Linienstärke etc. belegt wird. 26.11.2012/43

Add-on Für die Beschreibung der Kurve wurden zwei weitere Punkte angefügt die sogenannten Kontroll- oder Anfasserpunkte. (In Zeichnungen werden Anfasserpunkte mit der Maus gefasst und vom Knotenpunkt weggezogen. Vgl. Beispiel unter http://raphaeljs.com/.) Sie bilden eine Tangente zu einem am Beginn und am Ende der Kurve gedachten Kreissegment gleicher lokaler Krümmung ( Schmiegekurve ). 26.11.2012/44

Add-on Eine dritte Tangente wird dadurch beschrieben, dass die beiden (in die gleiche Richtung wegwärts von der Kurve) zeigenden Anfasserpunkte verbunden werden. Die Neigung dieser dritten Tangente entspricht der Neigung der Tangente am zur Verbindung nächsten Punkt der Kurve (Parallelverschiebung erforderlich). In den anderen Fällen schneidet die Verbindungslinie die Kurve, ohne Bezug zu ihr. 26.11.2012/45

Pfadbeschreibungen [aus Fibinger] 26.11.2012/46

Bézier-Kurven Bézier-Kurven sind spezielle Verbindungslinien zwischen zwei Punkten, die als Vektorgleichung für die Menge ihrer Punkte beschrieben werden. In SVG werden (wie üblich) quadratische und kubische Bézier-Kurven unterstützt und genutzt. Grob gesagt, haben quadratische BK einen Anfasserpunkt, und kubische BK zwei Anfasserpunkte. Das muss aber noch genauer werden... [vgl. http://de.wikipedia.org/wiki/bézierkurve] 26.11.2012/47

Bézier-Kurven Sie wurde Anfang der 1960er Jahre unabhängig voneinander von Pièrre Etienne Bézier bei Renault und Paul de Faget de Casteljau bei Citroën für Computer-Aided Design (computerunterstützte Konstruktion) entwickelt. Paul de Casteljau gelang zwar die Entdeckung früher, Citroën hielt seine Forschungen jedoch bis zum Ende der 1960er Jahre als Betriebsgeheimnis zurück. 26.11.2012/48

Bézier-Kurven Die Funktionen für kubische Bézier-Kurven in der Form einer einparametriger Vektorgleichung lauten: P(t) = P 0 (1-t) 3 +3. P 1 (1-t) 2 t+3. P 2 (1-t)t 2 +P 3 t 3, t in [0,1] Damit wird eine Kurve zwischen den mit den Vektoren P 0 und P 3 bezeichneten Punkten beschrieben. Die zwei Anfasserpunkte werden durch die Vektoren P 1 und P 2 bezeichnet. 26.11.2012/49

Bézier-Kurven [aus Fibinger] 26.11.2012/50

Bézier-Kurven Die quadratischen Bézier-Kurven werden durch die Funktionen P(t) = P 0 (1-t) 2 +2. P 1 (1-t)t+P 2 t 2, t in [0,1] beschrieben. Die Vektoren P 0 und P 2 beschreiben die zu verbindenden Punkte, P 1 beschreibt den Anfasserpunkt. 26.11.2012/51

Bézier-Kurven [aus Fibinger] 26.11.2012/52

Syntax Eine einfache kubische Bézierkurve kann man in SVG wie folgt erzeugen: <?xml version=v 1.0?> <!DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.0//EN http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd > <!-- --> <svg width= 400 height= 300 > <path d= M100,200 C100,100 400,100 400,200 stroke= black /> </svg> Dabei wird mit moveto, d.h. M, der Anfangspunkt vorgegeben, der curveto -Befehl C besteht aus zwei Anfasserpunkten und dem Endpunkt. Die Kurve wird nicht geschlossen. II 28.04.2008/53

Syntax Eine einfache quadratische Bézierkurve kann man in SVG wie folgt erzeugen: <?xml version= v1.0?> <!DOCTYPE svg PUBLIC -//W3C//DTD SVG 1.0//EN http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd > <!-- --> <svg width= 400 height= 300 > <path d= M100,200 Q100,250 400,200 stroke= black /> </svg> Dabei wird mit MoveTo, d.h. M, der Anfangspunkt vorgegeben, der quadratic Bézier CurveTo -Befehl Q besteht aus einem Anfasserpunkt und dem Endpunkt. Die Kurve wird nicht geschlossen. II 28.04.2008/54

Geometrische Erläuterung 26.11.2012/55

Bézier-Oberflächen Um sich Bézier-Oberflächen in 3D anzusehen siehe http://en.wikipedia.org/wiki/b%c3%a9zier_surface http://en.wikipedia.org/wiki/b%c3%a9zier_triangle http://paulbourke.net/geometry/bezier/ 26.11.2012/56

Wichtige Bemerkung Der Koordinatenursprung ist in SVG immer links oben, wobei die positive y-achse nach unten zeigt! Das entspricht dem Standard in mehreren Grafik- und DTP-Programmen, jedoch nicht in PostScript. x y 26.11.2012/57

Orientierung von Flächen Cartesisches System SVG-System 26.11.2012/58

Demo Die Datei bustrack.svg zeigt die Animation einer Buslinie durch einen der Gebäudekomplexe der ETH Zürich. Die Datei ist in SVG geschrieben Sie finden die Datei auf der Website MMT2 gleich neben dem Link zu dieser Vorlesung. In einem Editor können Sie sich den Quelltext ansehen und den Arbeitsaufwand bei händischer Kodierung abschätzen. (Also SVG-Editoren!) Zum IE zwecks Betrachtung... 26.11.2012/59

Quellen Iris Fibinger, SVG Scalable Vector Graphics. Praxiswegweiser und Referenz für den neuen Vektorgrafikstandard., Markt+Technik Verlag, München, 2002.(www.svg-site.de) Alexander Adam, SVG Scalable Vector Graphics. Das Praxisbuch., Franzi Verlag GmbH, Poing, 2002. (www.alex-adam.de) Andrew Watt et al., SVG unleashed, Sams Publishing, Indianapolis, USA, 2002. (www.samspublishing.com, Suche: 0-67232-429-6) www.w3.org/graphics/svg/, www.w3.org/graphics/svg/overview.html www.w3.org/tr/svg11/, www.w3.org/tr/svg12/ - Multimedia!!! Beispiele: www.carto.net/papers/svg/samples/ www.dbxgeomatics.com/svgmapmakersamples.asp?language= www.gis-news.de/svg/svg.htm www.adobe.com/svg/ www.aisee.com/svg/ www.ingmbh.de/en/produkte/visualisierung/sphinx%20svg/svg%20demos.htm Michael www.mozilla.org/events/dev-day-feb-2004/mozilla-futures/ Frank II 28.04.2008/60

II 26.11.2012/61

Vielen Dank für Ihre Aufmerksamkeit bis demnächst. 26.11.2012/62

Strukturen und erste Inhalte von SVG- Dokumenten SVG: Struktur und erste Inhalte 26.11.2012/63

SVG-Dokumente SVG ist ein Grafikformat, dass u.a. zur Darstellung in Internetbrowsern mit passendem Plug-In vorgesehen ist (oder in Firefox bzw. Opera direkt). Deshalb kann man SVG-Quellcode auf zwei Arten nutzen: Als eingebundenen Dateiabschnitt in einem übergeordneten HTML-Dokument Als eigenständige Datei, die wie eine HTML-Seite adressiert und verlinkt werden kann Der Suffix ist generell *.svg, bzw. *.svgz für GZIPkomprimierte Dateien. SVG: Struktur und erste Inhalte 26.11.2012/64

SVG-Grundstrukturen Beispiele SVG: Struktur und erste Inhalte 26.11.2012/65

5 Elementtypen in SVG 1 Server-Elemente (server elements) dienen als einzige zur Auszeichnung grafischer Effekte wie Verläufe, Füllmuster, Filter etc. Alle anderen grafischen und textlichen Formatierungen werden den SVG-Elementen über Attribute bzw. über CSS-Stylesheets beigefügt. Bsp.: <lineargradient>, <radialgradient>,... SVG: Struktur und erste Inhalte 26.11.2012/66

5 Elementtypen in SVG 2 Grafikelemente (graphics elements) darunter sind SVG-Elemente zu verstehen, die zeichnen, d.h. die (vorerst unsichtbare) grafische Formen vorherbestimmen, die später gestaltet werden können Die eigentliche Formenbeschreibung erfolgt über Attribute zu diesen Elementen, wie auch die grafische Gestaltung. Bsp.: <path>, <text>, <rect>, <circle>, <ellipse>, <line>, <polyline>, <polygon>,... SVG: Struktur und erste Inhalte 26.11.2012/67

5 Elementtypen in SVG 3 Containerelemente (container elements) enthalten Grafik- und weitere Containerelemente Bsp.: <svg>, <g>, <defs>, <symbol>, <clippath>, <mask>, <pattern>, <marker>, <a>, <switch>,... 4 Referenzelemente für Grafiken (graphics referencing elements) referenzieren auf Grafiken und Bilder, mitunter über xlink:... Bsp.: <image>, <use> SVG: Struktur und erste Inhalte 26.11.2012/68

5 Elementtypen in SVG 5 Elemente für die Textauszeichnung (text content elements) zeichnen zu rendernde Texte in SVG-Dokumenten aus Bsp.: <text>, <tspan>, <tref>, <textpath>, <altglyph>,... Strategie des Lernens: An Beispielen SVG-Dokumentaufbau und SVG- Elemente mit ihren Attributen kennen lernen. Eigene Versuche der Nutzung machen. SVG: Struktur und erste Inhalte 26.11.2012/69

Der Kopf von SVG-Dokumenten Der Anfang eines SVG-Dokuments sollte so aussehen (optionaler Anteil kursiv): <?xml version="1.0" encoding="iso-8859-15" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904 /DTD/svg10.dtd"> <svg width="200" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > </svg> SVG: Struktur und erste Inhalte 26.11.2012/70

Der Kopf von SVG-Dokumenten <!-- Alternative Empfehlung für SVG 1.1 --> <!-- <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/graphics/svg/1.1/dtd/svg11-flat- 20030114.dtd"> --><!-- Es wird empfohlen, den Kopf oben wegzulassen. --> <svg version="1.1" baseprofile="full" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="800" height="600"> </svg> SVG: Struktur und erste Inhalte 26.11.2012/71

Variationen Opera und das Adobe-Plugin für den IE öffnen SVG-Dateien auch dann korrekt, wenn nur der vom Wurzelelement <svg> umschlossene Anteil in der Datei steht. Firefox braucht entweder unbedingt die DOCTYPE- Deklaration, sonst zeigt er den Quelltext an (bei nur <svg>) oder verweigert gar ganz die Anzeige (<?xml...?> ohne DOCTYPE). Alternativ funktioniert die zweite Variante ohne <?xml...?>. SVG: Struktur und erste Inhalte 26.11.2012/72

Erläuterungen Theoretisch könnte man bei der Angabe der DTD des W3C den konkreten URI der SVG-DTD auch weglassen. Praktisch könnte das die Anzeige der Dateien in einzelnen SVG-Tools beeinträchtigen. Das svg-element selbst besitzt Angaben zur Größe der Fläche, die die SVG-Grafik füllen soll. Default ist "100%" in beiden Richtungen, von links oben aus gerechnet. Standard ist die relative Maßeinheit px (Pixel), die sich der Bildschirmauflösung und dem Koordinatensystem des Nutzers anpasst. (= ohne Angabe) SVG: Struktur und erste Inhalte 26.11.2012/73

Erläuterungen Die Wirkung der Angabe des sichtbaren Bereichs ist, dass darüber hinausgehende Objekte nur ausmaskiert werden, aber mit der Verschiebehand in dieses Sichtfenster verschoben werden könnten (je nach SVG-Player). Die Namensräume können, müssen aber nicht angegeben werden. Der xlink-namensraum ist mit den für SVG wichtigen Funktionen in der SVG-DTD implementiert. Wir brauchen ihn vorerst nicht. SVG: Struktur und erste Inhalte 26.11.2012/74

SVG in HTML <html> <head> <title>embedded SVG</title> <script type="text/javascript" src="script.js"/> <link rel="stylesheet" type="text/css" href="style.css"/> </head> <body style="bgcolor:#ffffff">... <embed src= mysvgpiece.svg" name="svgembed" id="svgembed" height="700" width="700" type="image/svg-xml"> <noembed><img src="gleichegrafik.gif"/></noembed> </body> </html> SVG: Struktur und erste Inhalte 26.11.2012/75

<html> SVG in HTML <!-- im Firefox, aber nicht im IE8 --> <head></head> <body style="bgcolor:#ffffff"> <object type="image/svg+xml" data="einegrafik.svg" width="280" height="280"> <img src="diegleichegrafik.gif"/> </object> </body> </html> SVG: Struktur und erste Inhalte 26.11.2012/76

SVG in HTML IE-Lösung von http://code.google.com/p/svgweb/: <!--[if IE]> <object src="../svg-files/photos.svg" classid="image/svg+xml" width="1250" height="750"> <![endif]--> <!--[if!ie]>--> <object data="../svg-files/photos.svg" type="image/svg+xml" width="1250" height="750"> <!--<![endif]--> </object> SVG: Struktur und erste Inhalte 01.12.2008/77

SVG in HTML Es soll weitere Möglichkeiten geben. Detaillierte Beschreibungen sind z.b. unter http://svg.tutorial.aptico.de/start3.php?knr=2 &kname=darstellung%20von%20svg-grafiken &uknr=2.1&ukname=svg- Grafiken%20in%20Webdokumenten zusammengestellt. Die anklickbaren Beispiele dazu funktionieren aber in Standardbrowsern oft nicht. Opera ist am besten. SVG: Struktur und erste Inhalte 26.11.2012/78

HTML5 und SVG Die Beta-Version des Firefox 3.7 beherrschte schon SVG in HTML5 und in XHTML als natürlichen Bestandteil! http://nightly.mozilla.org Minefield Version 4.x konnte dann keine Animationen mehr, danach wurde das wieder eingebaut. Anbei zwei Beispiele... 26.11.2012/79

<!DOCTYPE html> <head> <title>svg</title> HTML5 und HTML5 SVGund SVG <meta charset="utf-8" /> <script> // set element onclick event handler window.onload=function () { var circle = document.getelementbyid('redcircle'); // onclick event handler, change circle radius circle.onclick = function() { var r = parseint(this.getattributens(null,"r")); r-=10; circle.setattributens(null,"r",r); var dc = document.getelementsbytagnamens("http://purl.org/dc/elements/1.1/","title"); for (var i = 0; i < dc.length; i++) { var str = dc.item(i).namespaceuri + " " + dc.item(i).prefix + " " + dc.item(i).localname + " " + dc.item(i).textcontent; alert(str); }}} </script> </head> <body> <h1>svg</h1> <p>this is <code>text/html</code>!</p> <h2>svg</h2> <svg id="svgelem" height="800" xmlns="http://www.w3.org/2000/svg"> </svg> </body> <circle id="redcircle" cx="300" cy="300" r="300" fill="red" /> 26.11.2012/80

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> XHTML und XHTML SVGund SVG <title>svg</title> <meta charset="utf-8" /> <script> //<![CDATA[ // set element onclick event handler window.onload=function () { var circle = document.getelementbyid('redcircle'); // onclick event handler, change circle radius circle.onclick = function() { var r = parseint(this.getattributens("","r")); r-=10; circle.setattributens("","r",r); var dc = document.getelementsbytagnamens("http://purl.org/dc/elements/1.1/","title"); for (var i = 0; i < dc.length; i++) { var str = dc.item(i).namespaceuri + " " + dc.item(i).prefix + " " + dc.item(i).localname + " " + dc.item(i).textcontent; alert(str); } } } //]]> </script> </head> <body> <h1>svg</h1> <p>this is <code>text/html</code>!</p> <h2>svg</h2> <svg id="svgelem" height="800" xmlns="http://www.w3.org/2000/svg"> </svg> </body> </html> <circle id="redcircle" cx="300" cy="300" r="300" fill="red" /> 26.11.2012/81

Inkredenzen von SVG-Dateien SVG: Struktur und erste Inhalte 26.11.2012/82

Der Definitionsabschnitt Der Definitionsabschnitt folgt dem Kopf des SVG-Dokuments, er ist optional aber oft wichtig. Dort sind alle Elemente enthalten, die selbst nicht sichtbar sind, aber im Dokument anhand ihrer Namen aufgerufen und zur Anzeige gebracht werden können. Dies sind oft Elemente vom Typ Server-Element. Der Start-Tag dieses Abschnitts ist <defs>... SVG: Struktur und erste Inhalte 26.11.2012/83

Beispiel <?xml version="1.0"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- A. Adam, listing 03.1, S. 26 --> <svg width="400" height="300"> <defs> <lineargradient id="verlauf"> <stop offset="0%" style="stop-color:rgb(0,0,0);stop-opacity:1"/> <stop offset="100%" style="stop-color:rgb(255,255,255);stop-opacity:1"/> </lineargradient> </defs> <!-- zu zeichnende Elemente --> <rect x="10" y="10" width="200" height="100" style="fill:url(#verlauf)"/> </svg> SVG: Struktur und erste Inhalte 26.11.2012/84

Erläuterung zu Bsp. 03.1 Es wird ein Rechteck mit dem SVG-Element <rect> konstruiert. Die Koordinaten der linken oberen Ecke dienen als Referenzpunkt, sie sind in px relativ zur linken oberen Ecke des Bildschirms angegeben. Bei uns ist es x="10" y="10". Die Größe des Rechtecks wird durch Breite und Höhe bestimmt: width="200" height="100". Man beachte die Sichtbarkeit des Rechtecks relativ zum Fenster für das SVG-Dokument!!! SVG: Struktur und erste Inhalte 26.11.2012/85

Erläuterung zu Bsp. 03.1 Der style wird hier über dieses Attribut und durch Verweis auf einen SVG-Stil realisiert. Erst dadurch wird das konstruierte Rechteck sichtbar! (Außer Sie setzen zwei Mal stop-opacity:0 dann sehen Sie auch nichts. Warum?) Der Farbverlauf wird in Form der Angabe der Anfangs-/Endpositionen in % mit Farbe und Undurchsichtigkeitsgrad angegeben. Die Farben werden linear interpoliert. SVG: Struktur und erste Inhalte 26.11.2012/86

Probleme der Darstellung Probleme kann es durch die Palette der im Internetbrowser zulässigen Farben bzw. durch die Anzahl der Farben generell geben. (Farbraum des Internets mit seinen diskreten Abstufungen, kleine und große Webpalette.) Probieren Sie es durch Aufruf der Datei im IE aus, ggf. auch durch Verstellung der Farbendichte der Bildschirmeinstellungen! SVG: Struktur und erste Inhalte 26.11.2012/87

Beispiel 5.2 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <svg width="250" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- Fibinger, Kap. 5, listing 5.2, S. 92 --> <rect x="0" y="0" width="250" height="100" fill="yellow" /> <text x="125" y="50" style="font-family:verdana; font-weight:bold; font-size:16; fill:blue; text-anchor:middle"> Schreiben in SVG! </text> <!-- Der Text liegt ueber (!) dem Rechteck. --> </svg> SVG: Struktur und erste Inhalte 26.11.2012/88

Erläuterung Es fällt auf, dass in der DTD-Anweisung der Name des Verweises auf die SVG-DTD anders angegeben wird. So funktioniert es auch. Es werden in svg zwei Namensräume angegeben, was man in diesem Beispiel nicht müsste. Die Sprachraum-Anweisung für das XML-Dokument fehlt hingegen. Das kann Probleme mit Umlauten in den text-abschnitten verursachen. Für deren Kodierung gelten somit die XML- Regeln! SVG: Struktur und erste Inhalte 26.11.2012/89

Erläuterung Die Reihenfolge der Darstellung entspricht der des Zeichnens: Zuerst beschriebene Elemente werden zuerst gezeichnet, danach beschriebene Elemente überdecken bereits Gezeichnetes, es sei denn, es gibt Transparenz-Anweisungen zu ihnen! Sehen Sie sich die modifizierte Beispieldatei an. Im zweiten Fall wird die Schrift überdeckt. (Painter s Algorithm / Rule als Stichwort.) SVG: Struktur und erste Inhalte 26.11.2012/90

Erläuterung Das Rechteck wird hier durch ein einfaches fill-attribut mit Angabe einer Standardfarbe gestaltet. Es hat keinen Rand! Die Schrift hingegen wird wieder über das style-attribut sichtbar gemacht. Diesmal werden CSS-Befehle für Schrift direkt als Attributwert aufgezählt. Die Schrift ist einzufärben. (Denken Sie an die einzuhaltende Reihenfolge solcher Befehle laut CSS-Spezifikation.) SVG: Struktur und erste Inhalte 26.11.2012/91

Maßeinheiten Es gelten die Maßeinheiten nach CSS2. Es gibt relative und absolute Angaben. Default ist px, also Pixel in relativer Angabe. Absolute Einheiten in für inch (d.h. für Englischen Zoll) cm mm pt pc für Zentimeter für Millimeter für points (etwa 72. Teil eines inch) für picas (1 pica entspricht etwa 12 points) SVG: Struktur und erste Inhalte 26.11.2012/92

Relative Einheiten px em ex Maßeinheiten pixel relativ zur Bildschirmauflösung und zum benutzerdefinierten Koordinatensystem relativ zur Größe eines verwendeten Fonts von Schriftzeichen, Höhe des großen M relativ zur Höhe des Buchstaben x des verwendeten Fonts (auch wenn es ihn nicht gibt) % Prozentwert relativ zum benutzerdefinierten Koordinatensystem SVG: Struktur und erste Inhalte 26.11.2012/93

Break! Weitere Strukturelemente von SVG, wie z.b. das benutzerdefinierte Koordinatensystem und Einflussgrößen (in Form von SVG-Elementen) darauf, werden später erläutert. Stichwort: Gesteuerte Ansichten. Auch Struktur- und Referenzelemente sollen nicht gleich hier in epischer Breite erläutert werden. Bei Interesse: Fibinger, Kapitel 5.6-5.10 ansehen. SVG: Struktur und erste Inhalte 26.11.2012/94

Geometrische Grundelemente SVG: Struktur und erste Inhalte 26.11.2012/95

Vordefinierte Formen (1.0) Seit SVG 1.0 stehen folgende vordefinierte Formen zur Verfügung: Rechteck Kreis Ellipse Linie und Polylinie Polygon Pfad <rect> <circle> <ellipse> <line>, <polyline> <polygon> <path> SVG: Struktur und erste Inhalte 26.11.2012/96

Vordefinierte Formen (2.0) Es sind weitere vordefinierte Formen für SVG 1.1 bzw. 1.2 / 2.0 angedacht (2002 und nach 2009): Bögen für Kreissektoren, Spiralen, Sterne, gleichseitige Polygone (2.0) Bessere Zusammenarbeit mit XForms, dem XML- Standard für Formulare, z.b. durch Beschreibung vordefinierter Formularfelder (1.1) SVG: Struktur und erste Inhalte 26.11.2012/97

Rechtecke zeichnen SVG: Struktur und erste Inhalte 26.11.2012/98

Rechtecke zeichnen Die Attribute width und height sind laut DTD Pflichtangaben für das Element <rect>. Sie geben Breite und Höhe des Rechtecks an. Die Positionsangaben x und y legen die Koordinaten der linken oberen Ecke des Rechtecks fest. Default ist 0. Die Angaben rx und ry legen den x-radius und den y-radius der abgerundeten Ecken des Rechtecks fest. Default ist 0. (Aufpassen!) SVG: Struktur und erste Inhalte 26.11.2012/99

Beispiel 6.1 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- Fibinger, Kap. 6, listing 6.1, S. 112 --> <svg width="800" height="600"> <title>rechtecke zeichnen mit rect</title> <g id="bsp_rect" stroke="black" stroke-width="1pt"> <!-- Es folgt ein einfaches gelbes Rechteck: --> <rect x="6cm" y="1cm" width="8cm" height="12cm" fill="yellow" /> <!-- Darin liegt ein blaues Rechteck mit abgerundeten Ecken: --> <rect x="6cm" y="1cm" width="2cm" height="3cm" rx="1cm" ry="1cm" fill="blue" /> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/100

Erläuterung Das Element <g> führt eine Gruppierung durch. Sein Attribut id gibt der Gruppierung eine Erkennungsmarke. Die weiteren Attribute von <g> gelten dann für alle Unterelemente der Gruppe sie müssen nicht ständig neu geschrieben werden. Das Element <title> wird mitunter nicht darstellungswirksam. Es kann Tooltipp oder Browserkopfzeile werden. Es kann (fast) überall im Quelltext stehen. SVG: Struktur und erste Inhalte 26.11.2012/101

Kreise zeichnen SVG: Struktur und erste Inhalte 26.11.2012/102

Kreise zeichnen Das Attribut r ist laut DTD Pflichtattribut des Elements <circle>. Die Attribute cx und cy sind die Koordinaten des Kreismittelpunkts. Default ist 0, so dass default nur der rechte untere Viertelkreis ins Bild kommt. Mehr ist nicht zu beachten, außer künstlerischgestalterischen Maßnahmen... SVG: Struktur und erste Inhalte 26.11.2012/103

Beispiel 6.2 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- Fibinger, Kap. 6, listing 6.2, S. 112 --> <svg width="800" height="600"> <title>kreise zeichnen mit circle</title> <g id="bsp_circle"> <!-- Es wird ein gelber Kreis gezeichnet: --> <circle cx="400" cy="200" r="150" fill="yellow" /> <!-- Darueber liegt ein roter Kreis: --> <circle cx="400" cy="200" r="50" fill="red" /> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/104

Ellipsen zeichnen SVG: Struktur und erste Inhalte 26.11.2012/105

Ellipsen zeichnen Die Attribute rx und ry sind laut DTD Pflichtattribute des Elements <ellipse>. Sie bezeichnen die Länge der beiden Halbachsen einer Ellipse. Die Attribute cx und cy legen den Ort des Mittelpunkts der Ellipse fest. Default ist 0. Mehr ist kaum zu beachten, außer künstlerischgestalterische Maßnahmen... Frage: Wie zeichne ich schiefliegende Ellipsen? SVG: Struktur und erste Inhalte 26.11.2012/106

Beispiel 6.3 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- Fibinger, Kap. 6, listing 6.3, S. 115 --> <svg width="800" height="600"> <title>ellipsen zeichnen mit ellipse</title> <g id="bsp_ellipse"> <!-- Es folgt eine rote Ellipse --> <ellipse cx="400" cy="200" rx="150" ry="75" fill="red" /> <!-- Darueber liegt eine blaue, 30 Prozent opake Ellipse --> <ellipse cx="400" cy="200" rx="75" ry="150" fill="blue" fill-opacity=".3" /> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/107

Einfache Linien zeichnen Das Element <line> hat keine Pflichtattribute. Die Attribute x1 und y1 legen den Anfangspunkt, die Attribute x2 und y2 legen den Endpunkt der Linie fest. Defaultwert ist immer 0. Mehr ist kaum zu beachten, außer künstlerischgestalterische Maßnahmen... SVG: Struktur und erste Inhalte 26.11.2012/108

Beispiel 6.4 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- Fibinger, Kap. 6, listing 6.4, S. 116 --> <svg width="800" height="600"> <title>linien zeichnen mit line</title> <g id="bsp_line" stroke-width="3"> <!-- Es wird eine rote Linie gezeichnet --> <line x1="5cm" y1="10cm" x2="20cm" y2="10cm" stroke="red"/> <!-- Darueber liegen zwei Linien, gelb und gruen--> <line x1="5cm" y1="10cm" x2="12.5cm" y2="5cm" stroke="yellow"/> <line x1= 6cm" y1="10cm" x2="12.5cm" y2="5cm" stroke= green"/> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/109

Polylinien zeichnen Das Element <polyline> enthält das Attribut points als Pflichtattribut laut DTD. Das Attribut points enthält eine Liste von Punkten mit absoluten Koordinaten. Die Maßeinheit der Punktkoordinaten wird aus der des benutzerdefinierten Koordinatensystems automatisch abgeleitet (default: px). Die erneute Angabe von Maßeinheiten führt zum Abbruch des Parse-Vorgangs. Gleitkommazahlen sind möglich, der Trenner ist ein Dezimal-Punkt. SVG: Struktur und erste Inhalte 26.11.2012/110

Punkt-Listen gestalten Jeder Entwickler sollte sich einen Stil angewöhnen, lange Punktlisten im Quellcode zu schreiben. Empfohlen sei es, immer 2-4 Punktepaare in eine Zeile zu schreiben und die x- und y- Koordinaten durch ein Komma zu trennen. Punktepaare sind durch Leerschritte bzw. Wagenrücklauf zu trennen. SVG: Struktur und erste Inhalte 26.11.2012/111

Beispiel 6.5 <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/tr/2001/rec-svg-20010904/dtd/svg10.dtd"> <!-- Fibinger, Kap. 6, listing 6.5, S. 118 --> <svg width="800" height="600"> <title>polylinien zeichnen mit polyline</title> <g id="koordinaten"> <desc> Koordinatensystem </desc> <polyline stroke="black" fill="none" stroke-width="2" points="0,300 0,0 300,0" /> <circle id="ursprung" cx="0" cy="0" r="7" fill="red" /> <circle id="0,100" cx="0" cy="100" r="3" fill="black" /> <circle id="0,200" cx="0" cy="200" r="3" fill="black" /> <circle id="100,0" cx="100" cy="0" r="3" fill="black" /> <circle id="200,0" cx="200" cy="0" r="3" fill="black" /> </g>... II SVG: Struktur und erste Inhalte 05.05.2008/112

Beispiel 6.5 <g id="bsp_polyline"> <!-- Es folgt eine blaue Polylinie. Die Komponenten der Punktliste koennen dabei beliebig durch Komma und Leerraum separiert sein. --> <polyline stroke="blue" fill="none" points=" 50,200 100,200 100,150 150,150 150,100 200,100 200, 50 250, 50" /> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/113

Polygone zeichnen Das Element <polygone> enthält das Attribut points als Pflichtattribut laut DTD. Das Attribut points enthält eine Liste von Punkten mit absoluten Koordinaten. Die Maßeinheit der Punktkoordinaten wird aus der des benutzerdefinierten Koordinatensystems automatisch abgeleitet (default: px). Die erneute Angabe von Maßeinheiten führt zum Abbruch des Parse-Vorgangs. Im Gegensatz zu <polyline> wird der Linienzug automatisch geschlossen. SVG: Struktur und erste Inhalte 26.11.2012/114

Beispiel 6.6... <!-- Inhalt wie Beispiel 6.5 bis polyline --> <g id="bsp_polygon"> <!-- Es folgt ein schwarzes Polygon mit gelber Fuellung --> <polygon stroke="black" fill="yellow" points="150, 50 169,105 221, 78 195,131 250,150 195,169 221,221 169,195 150,250 131,195 79,221 105,169 50,150 105,131 79, 79 131,105" /> </g> </svg> SVG: Struktur und erste Inhalte 26.11.2012/115

http://code.google.com/p/svgweb Sehr interessante Beispiele SVG: Struktur und erste Inhalte 01.12.2008/116

Quellen Iris Fibinger, SVG Scalable Vector Graphics. Praxiswegweiser und Referenz für den neuen Vektorgrafikstandard., Markt+Technik Verlag, München, 2002.(www.svg-site.de) Alexander Adam, SVG Scalable Vector Graphics. Das Praxisbuch., Franzi Verlag GmbH, Poing, 2002. (www.alex-adam.de) Andrew Watt et al., SVG unleashed, Sams Publishing, Indianapolis, USA, 2002. (www.samspublishing.com, Suche: 0-67232-429-6) www.w3.org/graphics/svg/, www.w3.org/graphics/svg/overview.html www.w3.org/tr/svg11/, www.w3.org/tr/svg12/ - Multimedia!!! Beispiele: www.carto.net/papers/svg/samples/ www.dbxgeomatics.com/svgmapmakersamples.asp?language= www.gis-news.de/svg/svg.htm www.adobe.com/svg/ www.aisee.com/svg/ www.ingmbh.de/en/produkte/visualisierung/sphinx%20svg/svg%20demos.htm Michael www.mozilla.org/events/dev-day-feb-2004/mozilla-futures/ Frank II 05.05.2008/117 SVG: Struktur und erste Inhalte

Vielen Dank für Ihre Aufmerksamkeit bis demnächst. SVG: Struktur und erste Inhalte 26.11.2012/118