Buchvorstellung
Buchcover

Im großen Garten der Geometrie kann sich jeder nach seinem Geschmack einen Strauß pflücken.
David Hilbert

Graphische Datenverarbeitung in Java

Die graphische Datenverarbeitung, die den Studierenden der Fachrichtung Geoinformatik gelehrt wird, befasst sich ganz allgemein mit der Visualisierung von Daten. Hierzu zählt das Erstellen von Oberflächen mit den zur Verfügung stehenden Komponenten (AWT, SWING,...), die Ausgabe von aufbereiteten Daten oder die Manipulation von Bildern.

Das Lösen der Aufgaben wurde recht funktional gehalten und soll lediglich eine mögliche Vorgehensweise aufzeigen. Die Übungsaufgaben stellte Herr Prof. Dr.-Ing. Wolfgang Kresse.


Erstellen eines Graphikfenster und Ermittlung der Locator-Position

Stelle ein Graphikfenster über 400x400 px auf dem Bildschirm dar und beschrifte die Titelzeile mit "Übung1, Aufgabe1".

Lese die aktuellen Locator-Position in der Koordinateneinheit "Pixel" aus und zeige die Koordinate alphanumerisch an.

Graphische Datenverarbeitung Übung 1.1


Zeichnen eines Polygons

Zeichne ein Polygon, dessen Eckpunkte fortlaufend durch Setzen eines Locators definiert werden und das graphisch mit einer roten durchgezogenen Linie dargestellt wird.

Graphische Datenverarbeitung Übung 1.2


Darstellung eines Kreises als n-eckiges Polygon

Zeichne einen Kreis, der aus einem Polygon als n-Ecken gebildet wird. Die Position des Kreises soll durch eine Locator-Position festgelegt werden. Den Radius in Pixeleinheiten und die Anzahl der Ecken soll durch eine Eingabe von der Tastatur aus vorgenommen werden.

Graphische Datenverarbeitung Übung 1.3


Rotation eines Dreiecks mittels Rotationsmatrix

Nutze das Graphikfenster aus Aufgabe 1.1. Zeichne ein Dreieck mit den Echpunkten:

  • A[200/200],
  • B[220/220],
  • C[300/240]

und drehe dieses Dreieck um 45° gegen den Uhrzeiger um den Punkt P[180/180]. Programmiere dabei die Rotation in Matrizenschreibweise.

Graphische Datenverarbeitung Übung 1.4


Spiegelung eines Objektpunktes an einer Geraden

Zerlege die Transformation, die ein Objektpunkt Q Element R2 an der Geraden mit der Gleichung y = mx + n spiegelt in elementare Transformationen.

Graphische Datenverarbeitung Übung 1.5


Cohen-Sutherland-Algorithmus und Clipping

Nutze das Graphikfenster aus der Aufgabe 1.1. R sei ein rechteckiges Fenster, dessen linke untere Ecke bei [50/50] und dessen rechte obere Ecke bei [250/250] liegt. Wie lauten im Cohen-Sutherland-Algorithmus die Outcodes für die Punkte:

  • A[ 40/ 60],
  • B[140/300],
  • C[ 40/300],
  • D[ 60/350],
  • E[100/200],
  • F[200/ 60]

bezüglich des Fensters R? In welche Clipping-Kategorie fallen die Linien AB, CD, EF? Berechne für AB das Clipping und zeichne die Linie!

Graphische Datenverarbeitung Übung 1.6


Zeichnen einer Linie mit verschiedenen Verfahren

Stelle ein Graphikfenter auf dem Bildschirm dar und zeiche eine Linie von Punkt P1 [20 / 30] zun Punkt P2 [90 / 80]!

  1. Nutze den naiven Ansatz durch "Einsetzen" in die Geradengleichung y=mx+n.
  2. Nutze den DDA Algorithmus.
  3. Nutze den Mittelpunkt-Linien Algorithmus nach BRESENHAM.

Vergleiche die Linien durch unterschiedliche farbliche Darstellungen! Welche Pixel werden jeweils gesetzt? Erweitere den Algorithmus so, dass er für beliebige Gerade gilt. Bleibt die berechnete Pixelmenge gegenüber einer Vertauschung von Anfangs- und Endpunkt der Linie invariant?

Graphische Datenverarbeitung Übung 2.1


Antialiasing mittles Gupta-Sproull-Algorithmus

Programmiere ein Antialiasing für eine Linie zwischen zwei vorgegebenen Punkten. Setze dabei den Gupta-Sproull-Algorithmus ein.

Graphische Datenverarbeitung Übung 2.2


Erzeugung von verschiedenen Graukeilen

Um den Verlauf von Grauwerten zu überprüfen, verwendet man im Druck so genannte Graukeile: Streifen aus aneinanderhängenden, schmalen Rechteckzellen, die sukzessiv die Grauwerte von weiß bis schwarz durchlaufen.

  1. Schreibe ein Programm, das mittels einer Schleife einen solchen Graukeil der Länge 20cm mit 60 äquidistanten Graustufen zeichnet
  2. Schreibe ein Programm, das vier Graukeile zeichnet.

Für die Abstufung der Helligkeit dieser sollen 2,4,6 bzw. 8Bit zur Verfügung stehen.

Graphische Datenverarbeitung Übung 3.1


Veringerung des Grauwertumfangs eines Graustufenbildes

Wähle ein beliebiges Schwarzweißbild aus, das in TIFF mit einer Grauwerttiefe von 8Bit vorliegt. Schreibe ein Programm, das dieses Bild einliest, den Grauwertumfang vermindert und das Ergebnisbild unter einem anderen Namen wieder ausschreibt.

Die Verminderung des Grauwertumfangs soll wählbar auf 7,6,5,4,3,2 und 1Bit möglich sein! (Hinweis: Das JIMI Software Development Kit wird benötigt.)

Graphische Datenverarbeitung Übung 3.2


Bildbearbeitung mittles Tief- und Hochpassfilter

Wähle ein beliebiges Schwarzweißbild aus, das in TIFF mit einer Grauwerttiefe von 8Bit vorliegt. Schreibe ein Programm, das dieses Bild einliest, mit einem Tief- und einem Hochpassfilter faltet und das Ergebnisbild unter einem anderen Namen wieder ausgibt.

Der Filterkern des Tiefpassfilters lauet:
|1 1 1|
|1 1 1| * 1/9
|1 1 1|

Der Filterkern des Hochpassfilters lautet:
|-1 -1 -1|
|-1 +9 -1|
|-1 -1 -1|

(Hinweis: Das JIMI Software Development Kit wird benötigt.)

Graphische Datenverarbeitung Übung 3.3


Anwendung des LAPLACE-Filters zur Kantenerkennung

Wähle ein beliebiges Schwarzweißbild aus, das in TIFF mit einer Grauwerttiefe von 8Bit vorliegt. Schreibe ein Programm, das dieses Bild einliest, die Bildkanten findet und das Kantenbild ausschreibt. Verwende für die Suche nach Kanten den LAPLACE-Filter.

(Hinweis: Das JIMI Software Development Kit wird benötigt.)

Graphische Datenverarbeitung Übung 3.4


Ablegen und Laden von Signaturen in einer Bibliotheken

Kartographische Signaturen werden meist in Signaturbibliotheken (Datein) gespeichert und bei der Kartierung wiederholt abgerufen und platziert. Die geometrische Definition erfolgt meist über den graphischen Bildschrim. In dieser Aufgabe soll ein Programm geschrieben werden, das die geometrischen Definition, die anschließende Speicherung in einer Datei, den Abruf der Signatur aus dieser Datei und die Zeichnung auf dem Bildschirm enthält.

Zur Vereinfachung soll die Signatur nur aus einem oder mehreren Polygonen mit jeweils 2 oder mehr Punkten bestehen. Die Linien des Polygons sollen immer schwarz und durchgezogen sein.

Entwickle zur Lösung der Aufgabe auch eine einfache Datenstruktur, mit der die Signatur in der Datei gespeichert werden kann.

Graphische Datenverarbeitung Übung 4.1


Implementierung der Zentralprojektion

Ein Hausdach D werde durch einen Körper mit rechteckiger Grundfläche modelliert, der sich nach oben, das heißt in z-Richtung, zu einem First verjüngt. Die Eckpunktskoordinaten der Grundfläche seien:

  • D1 [ 50/ 50/100],
  • D2 [200/ 50/100],
  • D3 [200/150/100] und
  • D4 [ 50/150/100].

Der Dachfirst verlaufe zwischen:

  • F1 [ 75/100/200] und
  • F1 [175/100/200].

Das Dach soll aus verschiedenen Perspektiven betrachtet werden:

  • P1 [ -50/-150/ 300],
  • P2 [ 125/ -50/ 150] und
  • P3 [ 125/ 150/ 500].

Der Zielpunkt Z ist in allen Fällen Z [125/100/100]. Berechnen und zeichne für alle drei Fälle die Ansichten.

Graphische Datenverarbeitung Übung 4.2