Computer Graphics Gerätetechnik, Programmierung und Anwendung graphischer Systeme Von Prof. Dr.-Ing. Jose Encarnacäo Prof. Dr.-Ing. Wolfgang Straßer, Technische Hochschule Darmstadt, Fachbereich Informatik - Fachgebiet Graphisch-Interaktive Systeme Mit 268 Abbildungen 2., völlig überarbeitete und erweiterte Auflage R. Oldenbourg Verlag München Wien 1986
Inhalt Vorwort 1. Einführung in die Graphische Datenverarbeitung 1 1.1. Klassifizierung der Graphischen Datenverarbeitung 1 1.1.1. Die generative Computer Graphik 2 1.1.2. Die Bildverarbeitung 6 1.1.3.-Die Bildanalyse 8 1.2. Die Entwicklung der Graphischen Datenverarbeitung 8 1.3. Typische Anwendungen der Graphischen Datenverarbeitung 1.3.1. Plotsysteme zur Zeichnungserstellung 10 1.3.2. Kartographie 10 1.3.3. Computerunterstützter Entwurf 12 1.3.4. Simulationen 12 1.3.5. Prozeßüberwachung 12 1.3.6. Zusammenfassung der Anforderungen 13 1.4. Modellkonfiguration graphischer Systeme 13 1.5. Graphische Datenstrukturen und Datentypen 15 1.5.1. Die Daten des Anwendungssystems die Modelldaten 16 1.5.2. Die Datenstrukturen des graphischen Systems 17 1.5.3. Datenstrukturen und Datentypen graphischer Geräte 21 1.5.4. Datentypen der graphischen Eingabe 23 1.6. Graphische Programmiersprachen 24 2. Gerätetechnik graphischer Systeme 26 2.1. Das Sichtgerät (Display) 26 2.1.1. Die Kathodenstrahlröhre 26 2.1.2. Die "Penetron"-Röhre 30 2.1.3. Die Lochmaskenröhre 31 2.1.4. Die Speicherröhre (DVST = Direct-View Storage Tube) 32 2.1.5. Das Plasma-Panel-Display 35 2.1.6. Neuere Technologien 38 2.2. Drucker, Schreiber und Zeichenmaschinen 40 2.2.1. Drucker und Schreiber 40 2.2.2. Zeichenmaschinen (Plotter) 42 2.2.3. Laserprinter 46 2.2.4. Tintenstrahldrucker 47 2.3. Eingabegeräte 47 XI 10
VI Inhalt 2.3.1. Der Lichtgriffel (Lightpen) 48 2.3.2. Das Tablett 49 2.3.3. Indirekt graphische Eingabegeräte 53 2.3.4. Spracheingabe 55 2.4. Displayprozessoren für Vektorgeräte 55 2.4.1. Vektorgenerator (DVG) 57 2.4.2. Zeichengenerator 63 2.4.3. Kurven- und Flächengenerator 66 2.4.4. Transformationen 67 2.4.5. Clipping Hardware 70 2.4.6. Kontrolle der Bilderzeugung 73 2.4.7. Kommunikation 73 2.4.8. Vorverarbeitung graphischer Eingaben 75 2.4.9. Alternative Architekturen für Displayprozessoren 75 2.5. Displayprozessoren für Rastergeräte 79 2.5.1. Bilddarstellung (image display) 80 2.5.2. Bilderzeugung (image creation) 88 2.5.3. Bildspeicher (Refresh Memory) 99 1. Graphische Systemprogrammierung 108 3.1. Teilbereiche des GKS 108 3.1.1. GKS-Schnittstellen 108 3.1.2. GKS-Funktionsklassen 109 3.1.3. Globale Attribute 112 3.1.4. Arbeitsplatzspezifische Attribute 118 3.2. Koordinatensysteme und Transformationen 122 3.2.1. Koordinatensysteme 122 3.2.2. Transformationen 123 3.2.3. Klippen 125 3.2.4. Transformation von Koordinateneingaben 127 3.3. Graphische Arbeitsplätze 128 3.3.1. Charakteristika des graphischen Arbeitsplatzes 128 3.3.2. Auswahl eines GKS-Arbeitsplatzes 130 3.3.3. Aktualisieren von Bildänderungen 131 3.3.4. Gerätetransformationen 132 3.3.5. Modell der logischen Eingabegeräte, ' 132 3.3.6. Interaktionsablauf 134 3.3.7. Initialisierung von Eingabegeräten - 136 3.4. Segmente I37 3.4.1. Einleitung zu Segmenten 137 3.4.2. Segmentattribute 138
Inhalt VII 3.4.3. Segmenttransformationen 139 3.4.4. Segmentspeicher 139 3.4.5. Wiederverwendung von Segmenten 140 3.5. Die GKS-Bilddatei 142 3.5.1. Ausgabe auf Bilddatei 143 3.5.2. Wiedereinlesen der Bilddatei ins GKS 143 3.6. Die Zustandslisten des GKS 145 3.6.1. Der GKS-Betriebszustand 145 3.6.2. Die GKS-Zustandslisten 145 3.6.3. Erfragefunktionen 147 3.7. Fehlerbehandlung 147 3.8. GKS-3D U 8 3.8.1. GKS-3D Arbeitsplätze (Workstations) 149 3.8.2. GKS-3D Darstellungselemente 150 3.8.3. Attribute I 50 3.8.4. Viewing Pipeline 151 3.8.5. Eingabe I 57 :. Programmierung graphischer Dialoge 159 4.1. Einführung in die Dialogprogrammierung 159 4.2. Dialogzellen als Programmierwerkzeug 161 4.2.1. Das Dialogzellenkonzept 161 4.2.2. Syntax einer Dialogzelle 163 4.2.3. Semantik einer Dialogzelle 170 4.3. Realisationsstruktur 176 4.3.1. Gesamtstruktur 176 4.3.2. Der Preprozessor 177 4.4. Laufzeitsystem 1" 4.4.1. Tabellen zur Laufzeit 185 4.4.2. Zustandsänderungen der Tabellen 188 4.4.3. Initialisierung und GKS-Anschluß 188 4.4.4. Viewport handler 189 4.4.5. Menü- und Texthandler 191 4.4.6. Tracemöglichkeiten 192 4.5. Einsatz der Dialogzellen 193 4.5.1. Dialogzellen in der Hand des Dialogautors 193 4.5.2. Dialogzellen für den Benutzer 194 4.5.3. Dialogzellen auf dem Rechnersystem 195 4.5.4. Weitere Entwicklungsschwerpunkte 195 5. Dreidimensionale Darstellungen 197 5.1. Geometrische Transformationen 197
VIII Inhalt 5.1.1. Homogene Koordinaten jgy 5.1.2. Koordinatentransformationen 200 5.1.3. Projektionen 208 5.1.4. Beispiele 218 5.2. Kurven- und Flächendarstellung 222 5.2.1. Parameterdarstellung 222 5.2.2. Analytisch gegebene Kurven und Flächen 225 5.2.3. Freiform-Kurven und -Flächen 231 5.2.4. Interpolation 242 5.2.5. Approximation 248 5.2.6. B-Splines 257 5.2.7. Interpolation mit B-Splines 269 5.2.8. Verallgemeinerungen 273 5.3. Schnelle Transformation und Berechnung der Flächen 275 5.3.1. Differenzenverfahren 276 5.3.2. Flächenberechnung durch Matrizenmultiplikation in der Transformationshardware 280 5.4. Ausschnittsbildung (Windowing and Clipping) 280 5.5. Visibilitätsverfahren (Hidden-Line-, Hidden-Surface-Algorithmen) 290 5.5.1. Perspektivische Transformation 291 5.5.2. Beseitigung der Rückseiten (Back face culling) 291 5.5.3. Punktklassifizierung 293 5.5.4. Min/max Test 293 5.5.5. Punktorientierte Algorithmen 294 5.5.6. Linienorientierte Algorithmen 297 5.5.7. Flächenorientierte Algorithmen 306 5.5.8. Bewertung von Visibilitätsverfahren 309 5.6. Beleuchtungsmodelle 3jj 5.6.1. Ray-Tracing (Strahlverfolgung) 320 5.6.2. Gouraud-Shading 321 5.6.3. Phong-Shading 323. Geometrische Modellierung 324 6.1. Klassifizierung von geometrischen Modellierungssystemen 324 6.2. Mathematische Grundlagen 327 6.2.1. Flächenorientierte Darstellung 327 6.2.2. Körperorientierte Darstellung 327 6.3. Strukturen existierender geometrischer Modellierungssysteme 32 8 6.3.1. Architektur 32g
Inhalt IX 6.3.2. Unterstützte Anwendungen 329 6.3.3. Die Mensch-Maschine-Schnittstelle 330 7. Bildverarbeitung 333 7.1. Bildfilterung 333 7.1.1. Kantenfilter 342 7.1.2. Translation 346 7.1.3. Skalierung 348 7.1.4. Rotation 349 7.1.5. Quantisierungsfehler 350 7.2. Halbtonverfahren 352 7.2.1. Konstante Schwelle 353 7.2.2. Variable Schwelle (Dither) 355 7.2.3. Grautonmuster 358 7.3. Farbmodelle für die graphische Datenverarbeitung 359 7.3.1. Technisch-physikalische Farbmodelle 361 7.3.2. Wahrnehmungsorientierte Farbmodelle 364 8. Rechnergestütztes Entwerfenund Konstruieren 372 8.1. Interaktive Graphik-Systemkomponenten 374 8.2. CAD/CAM-Software 375 8.3. Dateien und Datenbanken für CAD/CAM-Systeme 377 8.4. Wirtschaftlichkeit 380 Anhang 1: Übungen 382 L Geräteteehnik 382 2. 3D-Darstellungen 384 3. Programmierung graphischer Systeme 391 Anhang 2: Lösungen 397 1. Gerätetechnik 397 2. 3D-Darstellungen 399 3. Programmierung graphischer Systeme 411 Anhang 3: Glossar 418 Anhang 4: Literatur 432 Stichwortverzeichnis 448 Bildanhang 453