10-Graphics2D Graphics2D. 10-Graphics2D2 Eigenschaften von Graphics2D Trennung zwischen Userkoordinaten und Gerätekoordinaten Beliebige Transformation.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

der Universität Oldenburg
Freie Universität Berlin Institut für Informatik
Abstrakte Klassen Basisklassen sollten in der Regel sehr allgemein sein. Oft ist es nicht notwendig, dass Objekte dieser generellen Basisklassen angelegt.
Objektorientierte Programmierung
Steigung m berechnen Man kann die Steigung auch berechnen,
Frame-Logik Eine Einführung Andreas Glausch.
verweis-sensitive Grafiken
Marco Barz Seminar über Algorithmen SoSe2007
Ein Modellansatz zur Beschreibung von Vagheiten
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Java: Reversi Spielbrett
Java: Objektorientierte Programmierung
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Java2D Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
FH-Hof Java 2D - Kontext für Zeichenoperationen Richard Göbel.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Sommersemester 2003 Lars Bernard
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Sebastian Grahn Sebastian Kühn
Einführung in die OOP in Java
Programmieren mit JAVA Teil V. Grafikausgabe mit JAVA, das AWT Java wurde von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber einfach zu.
zur Vorlesung Neuronale Netzwerke
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG A bstract W indow T oolkit. DVG Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window.
Abstrakte Klassen DVG
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
Transformationen 09-Transformationen.
DVG Klassen und Objekte
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
12-Drucken Drucken in JAVA. 12-Drucken2 Probleme beim Drucken: Es können nur graphische Informationen gedruckt werden. Die zu druckende Information muss.
08-GraphikImplementierung Implementierung der Graphik in EMMA301Paint.
Klassen 02 - Klassen.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Heute: Scherenzange zeichnen
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Grafikprogrammierung
Die Grundterminologie
Import und Verknüpfung von Daten
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
Fuzzymengen – Was ist das?
Informatik 1 Letzte Übung.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
1. Entwicklungsumgebung 2. Kontextmenü 3. Compile 4. Objekt 5. Attribut 6. Klasse 7. Deklaration 8. Intialisierung.
Digitale Bilder Advanced IT Basics
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Rafael, Florian, Patrick
Programmiervorkurs WS 2014/15 Instanzmethoden
Der Begriff Grafik Computergrafik ist die Erstellung und Verarbeitung von Grafiken mit Hilfe eines Computers. Hierzu benötigt man: Eingabegeräte wie zum.
Java-Kurs Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Boolesche Operationen
Objektorientierte Programmierung (OOP)
Abstrakte Klassen und das Interface-Konzept
...ist die kleinste darstellbare Datenmenge. Es wird in der Informatik, der Informationstechnik und in der Nachrichtentechnik entweder durch 0 oder durch.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
Das ABC der Statistik DIE SÄULENDIAGRAMME
Venusspiegel und Marsschild
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

10-Graphics2D Graphics2D

10-Graphics2D2 Eigenschaften von Graphics2D Trennung zwischen Userkoordinaten und Gerätekoordinaten Beliebige Transformation zwischen User- und Gerätekoordinaten Clipping an beliebigen Shape-Objekten ist möglich. Clipping im User- und im Gerätekoordinatensystem Grafische Objekte sind echte Objekte, abgeleitet vom Interface Shape. Es sind verschiedene Varianten der Kombination der Farben möglich.

10-Graphics2D3 Begriffe Rendering Berechnung der auf dem graphischen Gerät (Bildschirm, Drucker, Plotter u.s.w.) darzustellenden Pixel aus den Informationen, die das graphische Objekt beschreiben (Linien, Flächen, Bilder u.s.w.). Dabei wird ggf. die Transformation in andere Raumdimensionen (3D 2D) durchgeführt. Clipping Von den darzustellenden Objekten werden nur die Anteile dargestellt, die innerhalb des Clippingbereiches liegen. Der Clippingbereich kann im Userkoordinatenbereich oder im Gerätekoordinatenbereich liegen, oder beide können kombiniert werden. Alpha-Composit Jede Farbe enthält vier Komponenten r, g, b und α. Wenn zwei Objekte ein gemeinsames Pixel mit verschiedenen Farben enthalten, wird die Farbe beider Objekte mit Hilfe der α-Werte gemischt.

10-Graphics2D4 Rendering Bestimmung welche Objekte dargestellt werden sollen Clipping in den Userkoordinaten Bestimmung welche Farben gerendert werden müssen Transformation in die Gerätekoordinaten Clipping am Geräteclippingbereich

10-Graphics2D5 Grafische Objekte in Java2D Shape RectangularShape Rectangle2D AreaLine2DGeneralPathQuadCurve2DCubicCurve2D Arc2DEllipse2DRoundRectangle2D xxx2D xxx2D.Floatxxx2D.Double

10-Graphics2D6 Das Interface Shape Das Shape-Interface beschreibt alle grafischen Objekte von Graphics2D. Wichtige Methoden: public boolean contains(Point2D p) bzw. public boolean contains(double x, double y) testet ob ein Punkt (x,y) bzw. p im Inneren des Shape-Objektes enthalten ist. public boolean contains(Rectangle2D r) bzw. public boolean contains(double x, double y, double w, double h) test ob ein Rechteck vollständig im Inneren des Shape-Objektes enthalten ist. public Rectangle getBounds() bzw. public Rectangle2D getBounds2D() bestimmt das kleinste Rechteck, das das Shape-Objekt vollständig enthält.

10-Graphics2D7 public boolean intersects(Rectangle2D r) bzw. public boolean intersects(double x, double y, double w, double h) testet ob der Durchschnitt zwischen Rechteck und Shape-Objekt nicht leer ist.

10-Graphics2D8 Elementare graphische Objekte Elementare graphische Objekte sind: Line2D, QuadCurve2D, CubicCurve2D, Arc2D, Ellipse2D, Rectangle2D, RoundRectangle2D Diese Klassen sind abstrakt. Innerhalb dieser Klassen sind die realen Klassen xxx.Float und xxx.Double definiert. In diesen Klassen existieren zusätzliche Methoden zum Abfragen und Überschreiben der Parameter (Startpunkt, Größe u.s.w.).

10-Graphics2D9 GeneralPath Mit Hilfe der Klasse GeneralPath können komplexe aus mehreren elementaren graphischen Objekte zusammengesetzt Objekte erzeugt werden. Mit der Methode public void append(Shape s, boolean connect) können beliebige Shape-Objekte an das GeneralPath-Objekt angehängt werden. Mit der Methode public void moveTo(float x, float y) wird ein neuer Anfangspunkt für die nächste Operation festgelegt. Mit der Methode public void lineTo(float x, float y) wird eine Linie von dem aktuellen Startpunkt zu dem Punkt (x,y) gezogen.

10-Graphics2D10 Mit der Methode public void quadTo(float x1, float y1, float x2, float y2) wird eine quadratische Kurve von dem aktuellen Startpunkt zu Punkt (x2,y2) gezogen, wobei (x1,y1) als Kontrollpunkt genutzt wird (siehe QuadCurve2D). Mit der Methode public void curveTo(float x1, float y1, float x2, float y2, float x3, float y3) wird eine kubische Kurve von dem aktuellen Startpunkt zu Punkt (x3,y3) gezogen, wobei (x1,y1) als Kontrollpunkt genutzt wird (siehe QuadCurve2D). Mit der Methode public void closePath() wird der GeneralPath geschlossen, d.h. der Endpunkt wird mit dem letzten Punkt verbunden, der mit moveTo beschrieben wurde.

10-Graphics2D11 Area Area-Objekte können aus Shape-Objekten gebildet werden und beschreiben die umschlossene Fläche des Shape-Objektes. Mit Area-Objekten können Mengenoperationen ausgeführt werden. (konstruktive Geometrie) Konstruktor public Area() : leeres Area-Objekt public Area(Shape s) : das von dem Shape-Objekt umschlossene Gebiet

10-Graphics2D12 Area-Objekt mit einem anderen vereinigen public void add(Area rhs) a=b.add(c) a=bUc Area-Gebiet von einem anderen abziehen public void subtract(Area rhs) a=b.subtract(c) a=bc Durchschnitt zweier Area-Objekte bilden public void intersect(Area rhs) a=b.intersect(c) a=bc Symmetrische Differenz zweier Area-Objekte public void exclusiveOr(Area rhs) a=b.exclusiveOr(c) a=bUc - bc

10-Graphics2D13 AlphaComposite Bei der Komposition von Graphikobjekten kann mit Hilfe des Interfaces Composite der Algorithmus zur Komposition beschrieben werden. Die einzige konkrete Implementierung von Composite ist AlphaComposite. AlphaComposite beschreibt die Mischung der Farben entsprechend der Alpha-Werte eines Pixels. Jeder Bildpunkt kann neben dem rot-, grün- und blau-Anteil auch einen alpha-Wert besitzen. Werden zwei Bildpunkte gemischt, werden diese entsprechend ihres Alpha-Wertes gemittelt. Seien die Komponenten des schon dargestellten Pixels (AD,RD,GD,BD) und die des neuen Pixels (AS,RS,GS,BS), so ergeben sich die Komponenten des neuen Pixels in Abhängigkeit der verwendeten Regel aus folgender Tabelle

10-Graphics2D14 RegelAlphawertFarbwert (C=R,G,B) CLEAR00 SRCASCS SRC_OVERAS+AD*(1-AS)CS+CD*(1-AS) DST_OVERAS*(1-AD)+ADCS*(1-AD)+CD SRC_INAS*ADCS*AD DST_INAD*ASCD*AS SRC_OUTAS*(1-AD)CS*(1-AD) DST_OUTAD*(1-AS)CD*(1-AS)