8. Vektorgrafik. 8.1 Basisbegriffe für 2D-Computergrafik 8.2 2D-Vektorgrafik mit SVG 8.3 Ausblick: 3D-Computergrafik mit VRML

Ähnliche Dokumente
11. Computergrafik und Virtuelle Realität

11. Computergrafik und Virtuelle Realität

Ludwig-Maximilians-Universität München Prof. Hußmann Digitale Medien 10-1

8.! Vektorgrafik. 8.1! Basisbegriffe für 2D-Computergrafik 8.2! 2D-Vektorgrafik mit SVG 8.3! Ausblick: 3D-Computergrafik mit VRML

10.1! Basisbegriffe für 2D-Computergrafik 10.2! 2D-Vektorgrafik mit SVG 10.3! Ausblick: 3D-Computergrafik mit X3D

Scalable Vector Graphics (SVG)

Scalable Vector Graphics. Ulrich Hoffmann

5 Jahre Scalable Vector Graphics

Vektorgrafik. Medien- Technik

Illustrierende Aufgaben zum LehrplanPLUS. Realschule, Informationstechnologie, Lernbereich 1: Modul 1.2. Das Anhänger-Logo. Stand:

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

Computergrafik SS 2016 Oliver Vornberger. Kapitel 10: 2D-Grafik im Web

SVG Skalierbare Vektorgrafiken im Netz

Scalable Vector Graphics (SVG)

Einführung in die Medieninformatik. Studiengang Medien- und Kommunikationsinformatik WS 17/18 Prof. Dr.-Ing. Ido A. Iurgel, M.A.

Computergrafik SS 2014 Oliver Vornberger. Kapitel 21: 3D im Web

4 Grundlagen zu SVG-Karten und -Diagrammen...33

3D-Formate im Web. Teil 1: VRML. Von Lars Hillebrandt,

Gliederung. Grundlagen für SVG SVG. Scable Vector Graphics. grafische Datenverarbeitung XML

Going Crazy mit JavaScript: Grafik im Browser. Martin Marinschek, Stefan Schuster IRIAN.at

Scalable Vector Graphics (SVG)

Web-basierte Anwendungssysteme XHTML-Tabellen und Bilder

Scalable Vector Graphics (SVG)

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

Bildformate. Welches Format für welchen Zweck geeignet ist. Tipps und Tricks rund um Ihr Marketing, Grafik und Design

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Multimedia für Referate und Präsentationen

6.2 Zusammenfassung der Pfadkommandos

Einführung in VRML. Was ist VRML? Paul Scheremet Ratschläge: : Diego Iglesias. Language und wird wermel gesprochen.

Digitale Bildbearbeitung und Fotografie. Dozenten: Arne Scheffer

ProPra WS 2008/09: LEGO-Sculptor

Scalable Vector Graphics (SVG)

11. Computergrafik und Virtuelle Realität

11. Computergrafik und Virtuelle Realität

Inhalt. Grundlagen - Licht und visuelle Wahrnehmung 1. Grundlagen - 2D-Grafik (Teil 1) 43. Grundlagen - 2D-Grafik (Teil 2) 67

SVG und SMIL Einführung und Überblick

Digitale Whiteboard-Software mit HTML5, SVG und WebSockets

Digitale Bildbearbeitung und Fotografie. Dozenten: Arne Scheffer, Olaf Glaser

11. Computergrafik und Virtuelle Realität

Scalable Vector Graphics (SVG)

Grafikformate Ein kurzer Überblick

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

4. 3. Grafik-Programmierung

Kennen, können, beherrschen lernen was gebraucht wird

Vor-Geschichte von VRML

Raster- und Vektorgrafik

Füllen von Primitiven

Grafikformate Ein kurzer Überblick

Visualisierung und Animation im Web

Scalable Vector Graphics in SAS 9.2

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Literatur: Alan Watt: 3D Computergrafik, 3. Auflage, Pearson Studium Ludwig-Maximilians-Universität München Prof. Hußmann Digitale Medien 10-33

Lehrbuch der Grafikprogrammierung

Fotografische Bildbearbeitung (Composings, Retuschen, Reinzeichnung) für Print und Web, Gestaltung von Websites

1 Definition der Selektoren Einbinden der CSS 3 Möglichkeiten Farbangaben Schriftformatierung Abstände...

DIGITALISIERUNG VON BILDERN. Ivana

Name: Musterlösung Seite 2

Einführung in HTML. Tutorium. Präsentation der Sitzung vom 2./9. Juni 2004 Martin Stricker

Diana Lange. GENERATIVE GESTALTUNG Komplexe Datentypen: PShape

Computergrafik SS 2016

doit Software-Forschungstag 2006 Standardisierte Auszeichnungssprachen der Computergraphik für interaktive Systeme Martin Rotard

DOXNET Tag 24. November Datenströme und ihre Zukunft

Überblick. Der X3D Standard Überblick der Technologien Profile X3D Grundgerüst. Objekte Formen Materialien

CSS. Cascading Style Sheets

3.5 Implizite Beschreibungen

1 Was ist XML? Hallo XML! Kommentare in XML 52

Arbeitsblatt 6: Programmierung geometrischer Figuren

Grafiken dynamisch erzeugen in HTML5. Canvas. kurz & gut. David Flanagan O REILLY. Übersetzung von Lars Schulten

Navigation für Internetpräsenzen

SVG für mobile Anwendungen und Dienste. 42. Sitzung der Arbeitsgruppe Automation in der Kartographie (AgA) am 12. und 13. September 2005 in Wien

Computergrundlagen Graphikbearbeitung Inkscape und GIMP

Diese neuen Gestaltungsmöglichkeiten können nun auf den Web-Anzeigenmarkt angewandt werden: Wissensbaustein»Anzeigenmarkt: CSS-Einsatz«(S.

Formen und Pfade. Rechteck, Quadrat

X-Technologien. Ein Überblick. Ulrike Henny. IDE Summer School 2013, Chemnitz

Scalable Vector Graphics (SVG)

Multimediatechnologie

Teil 9 XML. 56 XML Eine Einleitung XHTML Die nächste Generation von HTML SVG Scalable Vector Graphics RDF/RSS 907

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

JA (z.b. über Orthogonalprojektion, ansonsten: Profile entwickelbar), NEIN (zwar planar möglich)

Präsentation von Karten im Internet. Ein Vergleich der Vektorformate SVG und ActiveCGM

Graphikformate Ein kurzer Überblick

Vektorgrafik. Medien- Technik

Wiedergabe und Präsentation von tracebasierten Implementierungssichten über den Linuxkern

Computergrundlagen Graphikbearbeitung Inkscape und GIMP

Visualisierung von Bestandsdatenauszügen in prototypischen Liegenschaftskarten. Karl Neumann, Silke Eckstein

VISUELLER CONTENT FÜR IHRE WEB- PROJEKTE: FINDEN, OPTIMIEREN, SPEICHERN W O R K S H O P,

Diese geometrischen Formen (Linien oder Flächen oder Text) in sechs Kategorien können Sie auf die Zeichenfläche zeichnen:

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis

3D-Visualisierung von bewegten Objekten. Vortrag in Anwendungen I

SMIL 2016 S h_da S Seite 1

Vektorobjekte auf der Formebene zeichnen. Form-Werkzeug wählen und über die Optionsleiste die Formeigenschaften festlegen

Vektorgrafik / Bitmap (bmp)

3D-Druckformate und COLLADA

7. Beispiele für XML-basierte Sprachen

Xara Xtreme mit deutscher Anleitung für 79,95 EUR

Auf einen Blick. Auf einen Blick

VektorWorks - Einführungskurs

Abschlussklausur. Modul INMJ01 5 ECTS-Punkte

MICROSOFT WORD XP. Inhaltsverzeichnis. In diesem Modul lernen Sie, wie Sie mit dem Programm Microsoft Office Art zeichnen können.

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Fachcurriculum ITG Albert-Schweitzer-Gemeinschaftsschule Klassenstufe 9/10 H. Bauer. Thema Inhalte/Umsetzung Programme Lehrplanbezug.

Transkript:

8. Vektorgrafik 8.1 Basisbegriffe für 2D-Computergrafik 8.2 2D-Vektorgrafik mit SVG 8.3 Ausblick: 3D-Computergrafik mit VRML Weiterführende Literatur: J. David Eisenberg: SVG Essentials, O'Reilly 2002 Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-1

Geänderte Gliederung! 1. Grundbegriffe 2. Digitale Codierung und Übertragung 3. Zeichen und Schrift 4. Signalverarbeitung 5. Ton und Klang 6. Licht, Farbe und Bilder 7. Bewegtbilder 8. Vektorgrafik 9. Web-Dokumente 10. Interaktive Web-Inhalte Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-2

Vektor-Grafikformate für das Web Nachteile von Bitmap-basierten Bildern: Grosse Dateien; Kompression führt zu Verlusten Maximale Auflösung unveränderlich festgelegt Hyperlinks in Bildern (image maps) schwierig zu realisieren Animation und Interaktion nicht möglich Trennung von Inhalt und Präsentation nicht möglich» Im Gegensatz z.b. zu HTML+CSS Vektorgrafik: Bild beschrieben durch seine grafischen Objekte Anwendungsbereiche für Vektorgrafik: Technische Zeichnungen, Illustrationen Logos, Icons Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-3

Rendering Rendering ist die Umrechnung einer darzustellenden Information in ein Format, das auf einem Ausgabegerät in einer dem Menschen angemessener Form dargestellt werden kann. Rendering bei zweidimensionaler (2D-)Grafik: Gegeben eine Ansammlung von Formen, Text und Bildern mit Zusatzinformation (z.b. über Position, Farbe etc.) Ergebnis: Belegung der einzelnen Pixel auf einem Bildschirm oder Drucker Grafikprimitive (graphics primitives): Formen, Text, Bilder Zeichenfläche (drawing surface): Ansammlung von Pixeln Rendering Engine: Programm zur Rendering-Umrechnung Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-4

Rendering-Parameter Jedes primitive Grafikobjekt hat eigene Parameter, die die Darstellung beeinflussen: Form (shape): Ecken, Platzierung etc. Text: Textinhalt Bild (image): Bildinhalt Weitere Parameter werden erst in der Rendering Engine festgelegt und beeinflussen ebenfalls die Darstellung: Füllung (paint): Wie werden die Pixel für Formen, Linien und Text gefärbt? Strich (stroke): Wie werden Linien gezeichnet (Stärke, Strichelung etc.)? Schrift (font): Wie wird Text dargestellt (Schriftart, Schriftschnitt etc.)? Transformation: Z.B. Verschieben, drehen, dehnen Überlagerung (compositing): Kombination mit anderen Bildern (z.b. Hintergrund) Zuschnitt (clipping): Bestimmung eines darzustellenden Ausschnitts Rendering hints: Spezialtechniken zur Darstellungsoptimierung Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-5

Rendering-Pipeline Form Text Bild stroke font transformation rendering hints Rasterdarstellung clipping shape paint (für Bilder) compositing rule Ausgabe Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-6

Anti-Aliasing Unzureichende Auflösung bei der Wiedergabe erzeugt Artefakte z.b. Treppeneffekte, verschwundene Öffnungen Anwendungsfall des Abtasttheorems... Anti-Aliasing-Technik für Farbübergänge und Kanten: Bild einer höheren Auflösung wird künstlich erzeugt Jedes neue (kleine) Pixel wird mit einer Mischfarbe nach Anteil an den beiden beteiligten Flächen belegt Benutzung des Alpha-Kanals, wenn verfügbar (Alphawert = Anteil des Hintergrunds am Pixel) Effekt: Kantenglättung Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-7

Koordinaten Grafik entsteht auf einer unbegrenzt grossen Leinwand (canvas) Punkte werden mit x- und y-koordinaten beschrieben y-achse bei 2D-Computergrafik nach unten! Einfachste Compositing-Regel: Neue Elemente überdecken vorhandene 100 200 300 400 500 x 100 200 300 y <rect x="150" y="60" width="300" height="200"/> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-8

8. Vektorgrafik 8.1 Basisbegriffe für 2D-Computergrafik 8.2 2D-Vektorgrafik mit SVG 8.3 Ausblick: 3D-Computergrafik mit VRML Weiterführende Literatur: J. David Eisenberg: SVG Essentials, O'Reilly 2002 Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-9

Scalable Vector Graphics (SVG): Geschichte Erstes weit verbreitetes Vektorgrafikformat im Web: CGM (Computer Graphics Metafile): ISO-Standard seit 1987 1997: Suche nach einem Vektorgrafikformat durch das W3C Nachteile von CGM: Nicht kompatibel mit CSS-Stilen, keine Links 1998: Ausschreibung durch das W3C für Markup-Sprache für Vektorgrafik, vier Einreichungen: Web Schematics (abgeleitet von troff pic) Precision Graphics Markup Language (PGML) (PostScript-orientiert) Vector Markup Language (VML) (PowerPoint-orientiert) DrawML 2001: W3C Recommendation SVG Elemente aus allen Vorschlägen Stark beeinflusst von PGML Starker industrieller Befürworter von SVG: Adobe 2001: "SVG Mobile" als Grafikstandard für Mobiltelefone akzeptiert 2003: SVG Version 1.1 verabschiedet, seit 2005 Entwurf für Version 1.2 Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-10

Grundstruktur einer SVG-Datei SVG-Syntax gehört zur Familie der XML-Sprachen Mehr zu XML in der nächsten Vorlesung Grundidee: Syntax sehr ähnlich zu HTML Spezieller Vorspann, dann Hauptelement <svg> <?xml version="1.0" encoding="iso-8859-1"?> <!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" xmlns:xlink="http://www.w3.org/1999/xlink">... SVG-Inhalte... </svg> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-11

Eine erste SVG-Grafik <svg width="320" height="220"> <rect width="320" height="220" fill="white" stroke="black"/> <g transform="translate(10 10)"> <g stroke="none" fill="lime"> <path d="m 0 112 L 20 124 L 40 129 L 60 126 L 80 120 L 100 111 L 120 104 L 140 101 L 164 105 L 170 103 L 173 80 L 178 60 L 185 39 L 200 30 L 220 30 L 260 61 L 280 69 L 290 68 L 288 77 L 272 85 L 250 85 L 230 85 L 215 88 L 211 95 L 215 110 L 228 120 L 241 130 L 251 149 L 252 164 L 242 181 L 221 189 L 200 191 L 180 193 L 160 192 L 140 190 L 120 190 L 100 188 L 80 182 L 61 179 L 42 171 L 30 159 L 13 140 Z"/> </g> </g> </svg> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-12

Software zur Darstellung von SVG Übersicht unter: http://www.svgi.org/ Eigenständige SVG-Viewer für alle Plattformen, meist in Java geschrieben, teilweise frei Plug-In für Web-Browser Adobe SVGViewer Plugin» für alle gängigen Plattformen und Browser Direkte Unterstützung in Browsern: Mozilla Firefox ab V. 1.5, Opera ab V. 8 SVG-Viewer für mobile Geräte z.b. für PalmOS, PocketPC, Symbian Erzeugen von SVG: Grafiksoftware mit SVG-Export, z.b. Adobe Illustrator, CorelDraw, JViews Spezielle Editoren, z.b. Inkscape, SVGDraw, Renesis Studio XML-Editoren Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-13

Skalierbarkeit mittels "ViewBox" Größenangabe durch Höhe und Breite: <svg width="320" height="220"> Absolute Grösse in Pixel Grafik wird bei Verkleinerung des Fensters abgeschnitten Größenangabe durch Sichtfenster (viewbox): <svg viewbox="0 0 320 220"> Anforderung eines rechteckigen sichtbaren Bereichs (x-oben-links y-oben-links x-unten-rechts y-unten-rechts) Grafik wird bei Verkleinerung /Vergrösserung des Fensters skaliert (variable Abbildung der Bildpixel auf Darstellungspixel) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-14

Rendering-Attribute in SVG Darstellung (rendering) eines grafischen Objekts kann mit Attributen beeinflusst werden, z.b.: fill Füllfarbe opacity Transparenz stroke Linienfarbe stroke-width Linienstärke stroke-linecap Form von Linienenden font-family Schriftfamilie font-size Schriftgrösse Angabe der Attribute auf mehreren Wegen möglich: Direkt als Attributwert Über ein style-attribut in CSS2-Syntax Über ein CSS2-Stylesheet Frage: Gehört bei einem Bild die Farbe eines Elements zum Inhalt oder zur Darstellung? Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-15

Beispiel: SVG-Grafik mit Stylesheet <?xml-stylesheet type="text/css" href="renderstyle.css"?> <svg viewbox="0 0 300 300"> <rect width="300" height="300"/> <rect class="type1" x="100" y="100" width="100" height="100"/> <rect class="type2" x="50" y="50" width="100" height="100"/> </svg> SVG-Datei rect {stroke:black; fill:white rect.type1 {stroke:none; fill:red rect.type2 {stroke:black; stroke-width:6; fill:green.heavy {stroke:black; stroke-width:10 renderstyle.css Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-16

Konzept: "Virtueller Zeichenstift" In fast allen Softwareschnittstellen und Ablageformaten für Vektorgrafik: Konzept einer "aktuellen Position" Metapher eines 2-dimensional beweglichen Zeichenwerkzeugs Typische Kommandos in der Zeichenstift-Metapher: "move to" Gehe zu x, y (absolute Position) oder um dx, dy Einheiten nach rechts, unten (relative Position) Vorteile: Leicht zu verstehen Wenige Grundprimitive für fast alle grafischen Formen Dominierend in Computergrafik-Standards Nachteil: Abschnitte sind keine Einzelobjekte Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-17

Pfade Pfad bedeutet eine Folge von Kommandos zum Zeichnen einer (offenen oder geschlossenen) Kontur Viele andere SVG-Tags (z.b. <rect>) sind Abkürzungen für Pfade Pfad-Syntax ist extrem knapp gehalten, um Speicherplatz bei der Übertragung zu sparen Pfad Zusätzlich dürfen SVG-Dateien auch (verlustfrei) komprimiert werden (gzip) besteht aus einer Folge (auch einelementig) von Pfadsegmenten Pfadsegment Folge von Kommandos, bei denen das erste eine neue "aktuelle Position" bestimmt ("M" = "Move to", "L" = "Line to") Beispiel (ein Dreieck): <path d="m 0 0 L 100 0 L 50 100 Z"> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-18

Pfad-Kommandos (Auswahl) Kommando Wirkung Parameter M Startpunkt festlegen x, y L Gerade Linie zum angegebenen Punkt x, y H Horizontale Linie bis x x V Vertikale Linie bis y y Z Gerade Linie zurück zum Startpunkt -- Q Quadratische Bezier-Kurve cx, cy, x, y C Kubische Bezier-Kurve c1x, c1y, c2x, c2y, x, y A Elliptischer Kurvenbogen... Kleinbuchstaben-Versionen der Kommandos: relative statt absolute Koordinaten Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-19

Kubische Bezier-Kurven in SVG Aus: D.Duce, I.Herman, B.Hopgood: SVG Tutorial Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-20

Beispiele für Pfade Entenumriss mit Linien (43 Punkte): <path d="m 0 112 L 20 124 L 40 129 L 60 126 L 80 120 L 100 111 L 120 104 L 140 101 L 164 106 L 170 103 L 173 80 L 178 60 L 185 39 L 200 30 L 220 30 L 240 40 L 260 61 L 280 69 L 290 68 L 288 77 L 272 85 L 250 85 L 230 85 L 215 88 L 211 95 L 215 110 L 228 120 L 241 130 L 251 149 L 252 164 L 242 181 L 221 189 L 200 191 L 180 193 L 160 192 L 140 190 L 120 190 L 100 188 L 80 182 L 61 179 L 42 171 L 30 159 L 13 140 Z"/> Entenumriss mit Bezier-Kurven (25 Punkte) <path d="m 0 312 C 40 360 120 280 160 306 C 160 306 165 310 170 303 C 180 200 220 220 260 261 C 260 261 280 273 290 268 C 288 280 272 285 250 285 C 195 283 210 310 230 320 C 260 340 265 385 200 391 C 150 395 30 395 0 312 Z"/> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-21

Füllregeln Bei komplexen Pfaden ist nicht mehr klar, welche Flächen mit einer Füllfarbe auszufüllen sind und welche nicht (wo ist innen und außen?) Füllregeln (Attribut fill-rule) nonzero: Gibt es Schnittpunkte? evenodd: Heben sich Schnittpunkte gegenseitig auf? (siehe nächste Folie) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-22

Füllregeln: Evenodd und Nonzero Zur Bestimmung, ob ein Punkt innen oder außen liegt: Ziehe einen Strahl vom betrachteten Punkt bis ins unendliche (in beliebiger Richtung) Schnittpunkte des Strahls mit dem Pfad der Form bestimmen innen und außen je nach Füllregel Füllregel evenodd: Zähle die Anzahl der Schnittpunkte des Strahls mit dem Pfad Bei ungerader Anzahl ist der Punkt innen, bei gerader Anzahl ist der Punkt außen Füllregel nonzero: Immer wenn:» Pfad schneidet Strahl von links nach rechts, dann zähle +1» Pfad schneidet Strahl von rechts nach links, dann zähle -1 Ist die Summe 0, dann ist der Punkt außen, sonst innen Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-23

Text <text> Platzierung von Text auf der Leinwand Koordinaten-Attribute x und y: Linke untere Ecke des ersten Buchstabens Schrift, Größe usw. über Attribute oder Stylesheet <tspan> Untergruppe von Text in einem <text>-element Einheitliche Formatierung (wie <span> in HTML) Relative Position zur aktuellen Textposition: Attribute dx und dy» Typisches Beispiel für "Zeichenstift-Metapher" Spezialeffekte Drehen einzelner Buchstaben (rotate-attribut) Text entlang eines beliebigen Pfades (<textpath>-element) (Hinweis: Derzeit (2007) in Firefox nicht implementiert, siehe http://www.mozilla.org/projects/svg/status.html) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-24

Text in SVG: Beispiel <text x="50" y="20" style="font-size:20pt"> <tspan x="50" dy="30">mehrzeiliger Text:</tspan> <tspan x="50" dy="30">zeilenabstand mit dy-attribut.</tspan> <tspan x="50" dy="30" style="font-weight:bold; font-style:italic">lokale Stiländerungen</tspan> </text> <text x="50" y="150" style="font-size:28"> <tspan rotate="10 20 30 20 10 20 20"> Verdreht</tspan> </text> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-25

Grundformen von Grafikelementen Alle SVG-Grafikelemente sind aus Pfaden und Text ableitbar. Zusätzliche häufig verwendete Elemente (Kurzformen): Elementname Bedeutung Attribute <line> Linie x1, y1: Erster Punkt x2, y2: Zweiter Punkt <polyline> Folge zusammenhängender points: Folge von x, y Linien <polygon> Polygon points: Folge von x, y <rect> Rechteck x, y: Linke obere Ecke width: Breite, height: Höhe rx, ry: Radien der Ecken <circle> Kreis cx, cy: Zentrum, r: Radius <ellipse> Ellipse cx, cy: Zentrum rx, ry: Radien Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-26

Beispiel: SVG-Grafikelemente <rect x="20" y="20" width="100" height="100" rx="10" ry="10" fill="red" stroke="none"/> <circle cx="50" cy="50" fill="blue" r="20"/> <polyline points="80,80 100,180 120,80 140,180" fill="none" stroke="black" stroke-width="2"/> <line x1="80" y1="80" x2="60" y2="180" stroke="green" stroke-width="5"/> <polygon points="200,20 300,20 250,150" fill="lightseagreen"/> <ellipse cx="250" cy="170" rx="40" ry="20" fill="deeppink"/> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-27

Gruppierung und Transformationen Gruppe: Grafische Elemente, die eine Einheit bilden und in ihrer relativen Position zueinander erhalten bleiben sollen Sinnvoll,» um einheitliche Attributdefinitionen für die Gruppe festzulegen» um die Gruppe als Gesamteinheit zu verschieben, drehen etc. SVG-Tag <g> Transformationen: Verschieben (translate), drehen (rotate), verzerren (skew) oder vergrößern/verkleinern (scale) Prinzipiell anwendbar auf einzelne Elemente, aber v.a. sinnvoll bei Gruppen SVG-Attribut transform» Namen für Werte siehe englische Bezeichnungen oben (bei skew zwei Varianten skewx und skewy)» jeweils passende Parameter, z.b. translate(200, 200) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-28

Clipping Clipping bedeutet, aus einem Grafikelement einen Teil auszustanzen, der einem anderen gegebenen Grafikelement (dem Clip-Path) entspricht. Clipping in SVG (Beispiel): <clippath id="myclip"> <circle cx="250" cy="150" r="150"/> </clippath> <g clip-path="url(#myclip)"> <rect width="500" height="100" x="0" y="0" fill="black"/> <rect width="500" height="100" x="0" y="100" fill="red"/> <rect width="500" height="100" x="0" y="200" fill="gold"/> </g> Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-29

Links in SVG und XLink Links in SVG funktionieren exakt wie in HTML (anchor tag) Beispiel externer Link zu HTML-Dokument: <a xlink:href="http://www.mimuc.de"> </a> <circle cx="50" cy="50" fill="blue" r="20"/> Die verwendete Syntax (Namensraum xlink) entspricht dem XLink- Standard des W3C für Links in beliebigen XML-Dokumenten. http://www.w3.org/1999/xlink Der Namensraum muss deklariert werden, z.b. so: <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink="http://www.w3.org/1999/xlink" > Details zu Namensräumen siehe nächste Vorlesung! Hinweis: Nicht zu verwechseln mit der URI-Syntax (XPointer-basiert), z.b. bei Bezug auf Clipping-Pfad Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-30

Symbole und ihre Verwendung Man kann in SVG zur wiederholten Verwendung geeignete Symbole definieren (<symbol>) und viele Exemplare desselben Symbols erzeugen (<use>). Beispiel: <symbol id="sym1"> <rect x="20" y="20" width="100" height="100" rx="10" ry="10" fill="red" stroke="none"/> <circle cx="50" cy="50" fill="blue" r="20"/> </symbol> <use xlink:href="#sym1" x="80" y="10"/> <use xlink:href="#sym1" x="10" y="70"/> Das use-element benutzt die gleiche XLink- Syntax wie das a-element (Anker) Verweise auf Symbole über die aus HTML bekannte Syntax für Dokumentfragmente (#xyz) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-31

Animationen in SVG SVG-Objekte können zeitabhängig verändert werden: animate, animatetransform, animatemotion, animatecolor,... Zeitangaben ähnlich wie in SMIL: dur, begin, end Beispiel animatetransform: type-attribut: Art der Transformation (rotate, scale,...) values-attribut: Wertebereich des zu verändernden Parameters (Startwert, Zwischenwerte, Endwert) Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-32

Beispiel: Uhr in SVG <circle cx="100" cy="100" r="80" style="fill:white;stroke:black"/> <text x="130" y="46" style="font-size:15">1</text> <text x="154" y="71" style="font-size:15">2</text>... <text x="92" y="37" style="font-size:15">12</text> <g transform="translate(100 100)"> <g id="hours"> <line x1="0" y1="0" x2="0" y2="-35"...> <animatetransform attributename="transform" type="rotate" dur="43200s" values="0;360" repeatcount="indefinite"/> </line> </g> <g id="minutes"> <line x1="0" y1="0" x2="0" y2="-55"...> <animatetransform attributename="transform" type="rotate" dur="3600s" values="0;360" repeatcount="indefinite"/> </line> </g> <g id="seconds"> <line x1="0" y1="0" x2="0" y2="-75"...> <animatetransform attributename="transform" type="rotate" dur="60s" values="0;360" repeatcount="indefinite"/> </line> </g> </g> Uhr stellen: mit JavaScript! Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-33

8. Vektorgrafik 8.1 Basisbegriffe für 2D-Computergrafik 8.2 2D-Vektorgrafik mit SVG 8.3 Ausblick: 3D-Computergrafik mit VRML Weiterführende Literatur: J. David Eisenberg: SVG Essentials, O'Reilly 2002 Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-34

3D-Modellierung Objekte als Punktwolken im dreidimensionalen Raum Grundprinzipien wie bei 2D-Vektorgrafik, jedoch zusätzlich: 2D-Projektion zur Darstellung:» Kamera in 3D-Welt» Perspektive» Verdeckung Oberflächeneigenschaften von Objekten Beleuchtunqsquellen Rendering von 3D-Objekten Als Drahtmodell oder Polygonmodell Berechnung von Schattierung abhängig vom Lichteinfall Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-35

Virtual Reality Modeling Language VRML Beispiel einer Sprache für 3D-Grafikdokumente Skriptsprache und Austauschformat zur Beschreibung von 3D-Welten Auf den Einsatz im Internet ausgelegt Vektor-Grafikformat VRML hat keine XML-Syntax! Nachfolger von VRML: X3D ist XML-Sprache 1997: VRML wird Internationaler Standard ISO-14772» Meist als VRML 97 bezeichnet, weitgehend identisch zu VRML 2.0 Dateiextension:.wrl (wie world ) und.wrz (=.wrl.gz komprimierte Variante) Mäßige praktische Verbreitung Verschiedene proprietäre Formate häufig genutzt Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-36

Beispiel einer VRML-Szene #VRML V2.0 utf8 Background { skycolor 1.0 1.0 1.0 Shape { appearance Appearance { material Material { emissivecolor 1.0 0 0 geometry Box { size 2.0 2.0 2.0 box0.wrl Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-37

Beispiel: Einfacher Szenegraph Group { children [ Transform { children [ Shape { appearance Appearance { material Material { diffusecolor 1.0 0 0 geometry Box { size 2.0 2.0 2.0 ] translation 2.0 0 0 Shape { appearance Appearance { material Material { diffusecolor 0 0 1.0 geometry Sphere { radius 1.0... (rechte Spalte)... Transform { children [ Shape { appearance Appearance { material Material { diffusecolor 0 1.0 0 geometry Box { size 2.0 2.0 2.0 ] translation -2.0 0 0 ] NavigationInfo { type "EXAMINE" scene0.wrl Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-38

Beispiel: Animation in VRML (Würfeldrehung) DEF RotCube Transform { children [ Shape { appearance Appearance { diffusecolor 0 1.0 0 geometry Box { size 2.0 2.0 2.0 ] DEF Clock TimeSensor { cycleinterval 6.0 loop TRUE DEF Interpolator OrientationInterpolator { key [0.0, 1.0] keyvalue [ 0 1.0 0 0.00, 0 1.0 0 3.14 ]...nächste Spalte... NavigationInfo { type "EXAMINE" ROUTE Clock.fraction_changed TO Interpolator.set_fraction ROUTE Interpolator.value_changed TO RotCube.set_rotation box1.wrl Ludwig-Maximilians-Universität München, Medieninformatik Prof. Hußmann Digitale Medien WS 2007/2008 8-39