Angewandte lnformatik Informatik Herausgegeben von Helmut He/mul Schauer

Graphische Datenverarbeitung JVemer Purgathofer

Springer-Verlag Wien New York

Dipl.-Ing. Dr. techn. Wemer Purgathofer Institut fUr Praktische Informatik Technische Universităt Wien, Osterreich

Das Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbesondere die der Ubersetzung, des Nachdruckes, der Entnahrne von Abbildungen, der Funksendung, der Wiedergabe auf photomechanischem oder ăhnlichem Wege und der Speicherung in Datenverarbeitungsan1agen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. © 1985 by Springer-Verlag/Wien

Mit 133 Abbildungen

CIP-Kurztitelaufnahme der Deutschen Bibliothek

Purgathofer, Wemer: Graphische Datenverarbeitung / Wemer Purgathofer. Wien ; New York: Springer, 1985. (Angewandte Informatik) ISBN 978-3-211-81855-8 ISBN 978-3-7091-3287-6 (eBook) DOI 10.1007/978-3-7091-3287-6

ISSN 0178-0069 ISBN 978-3-211-81855-8

Geleitwort Computer bevolkern bevölkern zunehmend unseren Lebensraum - unseren Arbeitsplatz, unsere Schule, unsere Freizeit. Gleichzeitig wächst wăchst die Leistungsfähigkeit Leistungsfăhigkeit der Rechner, auch der kleinen, mit atemberaubendem Tempo, was immer mehr Menschen das Tor zum Computereinsatz öffnet. offnet. Inmitten dieser rasanten Entwicklung kann selbst der Fachmann seinen Überblick Uberblick kaum mehr bewahren und einen tatsächlichen tatsăchlichen Nutzen der Flut FIut am Markt angebotener Produkte (Software wie Hardware) abschätzen. abschătzen. unterstützend Hier will nun die Reihe "Angewandte Informatik" unterstutzend eingreifen. Jeder Band widmet sich einem ausgewählten ausgewăhlten und aktupräsentiert dazu den Stand der ellen Schwerpunktthema und prăsentiert Technik in umfassender Weise, wobei in Frage kommende Produkte firmenneutral dargestellt und objektiv verglichen werden. Dadurch kann der professionelle Informatiker und EDV-Anwender auf dem laufenden bleiben, der Student kann sein Basiswissen abrunden, der begeisterte Amateur wird viele anregende Tips finden, und der verunsicherte EDV-Aspirant wird klarer sehen, welfUr ihn bereithălt fUr chen Gewinn die neue Technologie für bereithält und was er für sein Geld verlangen kann. Helmut Schauer

Vorwort Die graphische Datenverarbeitung ist ein so weit1ăufiges Gebiet, daB ein vollstăndiges Nachschlagewerk den vielfachen Umfang dieses Bandes beanspruchen wurde. In kleinerem Rahmen will ich daher lehrbuchartig ei ne griindliche Ubersicht uber die graphische Datenverarbeitung vermitteln und ihre wesentlichen Begriffe erlău­ tem. Dabei habe ich mich bemuht, den Stoff nicht komplizierter darzuste11en, als er ist. Einfache Grundkenntnisse der a11gemeinen Datenverarbeitung werden a11erdings vorausgesetzt - der Leser so11te z. B. wissen, was eine Programmiersprache oder ein Speicher ist. Auf die Grundlagen der graphischen Datenverarbeitung hingegen wird ausfUhrlich eingegangen. Mit Hilfe einfacher, teils mode11hafter Konzepte werden die groBen Zusammenhănge sichtbar gemacht und das Verstăndnis fUr die jeweilige Fragestellung gefordert. Auf Details, die eher verwirren wurden, habe ich verzichtet. Verallgemeinerungen, die einer strengen Priifung teilweise nicht ganz standhalten wurden, waren manchmal nicht zu vermeiden, ersparen aber den hăufigen Gebrauch umstăndlicher Phrasen wie "im a11gemeinen", "meist" oder "im wesent1ichen" usw. Bei den Fachausdriicken greife ich meistens auf die englische Terminologie zuriick, denn viele der eingedeutschten Begriffe halte ich fUr sehr unglucklich gewăhlt und oft unverstăndlich. Uberdies erleichtem die englischen Worter den Zugang zu weiterfUhrender englischsprachiger Fachliteratur. Das Glossar so11 hier als zusătz­ liche Briicke dienen. Allgemeine Bezeichnungen wie "Benutzer", "Programmierer", "Arbeitnehmer" usw. habe ich der Einfachheit halber in der ublichen mănnlichen Form verwendet. Zum Gluck sind aber gerade in der Datenverarbeitung als technischem Fach uberdurchschnittlich viele Frauen tătig. Sie mogen sich durch diese Ausdriicke ebenfa11s angesprochen fUhlen. Literaturhinweise im Text wurden weggelassen, weil ich glaube, daB sie ein Lehrbuch eher belasten. Doch findet sich im Anhang eine Ubersicht uber weiterfUhrende Bucher und Zeitschriften. A1len Ko11egen, die mir beim Korrekturlesen geholfen haben,

VIII

Vorwort

danke ich herzlich. Vor allem gilt dieser Dank Herrn Dipl.-Ing.

A. A. Clauer, Herrn Dipl.-Ing. E. Dworzak, Herrn Dipl.-Ing. M. Gervautz, Frau 1. I. Gott1er Gött1er und meiner Frau Brigitte. Viele Stilbliiten Stilblüten

und fachliche Unklarheiten konnten so ausgemerzt werden. Bedanken mochte möchte ich mich auch bei den Firmen Sysgraph, Prime-Datamed, Volkswagenwerk AG sowie bei Herrn Dipl.-Ing. E. Wilmersdorf vom Magistratischen Rechenzentrum in Wien, die mir Abbildungen zur Verfiigung Verfügung stellten. Die Abbildungen im Abschnitt 3.4 wurden mit einem Programm von Herrn W. Konig König und Herrn P. WeiBenlechner erstellt. Mărz 1985 Wien, im März

Werner Purgathofer

Inhalt 1. Einfiihrung Einführung in die graphische Datenverarbeitung 1.1 Uberblick Überblick . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Komponenten der graphischen Datenverarbeitung . 1.2.1 Geräte Gerăte der graphischen Datenverarbeitung. . Ausgabegerăte . . . . . . . . . Graphische Ausgabegeräte Eingabegerăte für fUr die graphische Datenverarbeitung Eingabegeräte 1.2.2 Graphische Dialogformen . . . . . . . . . . . . . . . 1.2.3 Graphischer Arbeitsplatz . . . . . . . . . . . . . . . .

3 3

3 14 23 25

1.3 Einige Anwendungen der graphischen Datenverarbeitung 1.3.1 Präsentationsgraphik Prăsentationsgraphik . . . . . . 1.3.2 Computer Aided Design (CAD) 1.3.3 Kartographie . . . . . . . . . 1.3.4 Animation . . . . . . . . . . .

27 27

1.4 Ergonomische und soziale Aspekte 1.4.1 Ergonomie . . . . . . . . . Hardware-Ergonomie Hardware-Ergonomie.. Software-Ergonomie 1.4.2 Soziale Aspekte . . . . . .

38 38 38 39

31 35 35

41

2. Graphische Programmierung 2.1 Steuerung der graphischen Geräte Gerăte 2.1.1 Plotter '" . . . . . 2.1.2 Bildschirme .. . . . . . . . 2.1.3 Graphisches Tablett. . . . . 2.1.4 Verwendung von Unterprogrammen

45

2.2 ModelIe Modelle fUr für graphische Objekte 2.2.1 2D-Modelle . . . . Lineales Modell Areales Modell 2.2.2 3D-Modelle . . . . Drahtmodell . . FIăchenmodell . Flächenmodell Volumenmodell

53 54 55 55 56 56 56

2.3 Datenstrukturen fur für graphische Objekte . 2,3.1 Organisation eines Bildwiederholspeichers .

58 59

46

47 52 53

57

x

Inhalt 2.3.2 Datenstrukturen in einem Programm Lineare Liste . . . . . . . . . . . . Linear verkettete Liste . . . . . . Verkettete Listen mit Querverkettung Bildbaum beim Volumenmodell . Quadtrees und Octrees . . . 2.3.3 Graphische Datenbanken . . .

60 61 62 63

67 67 69

2.4 Graphische Unterprogrammsysteme . 2.4.1 Entwurfsregeln . . . . . . . . . 2.4.2 Systemstruktur. . . . . . . . . . 2.4.3 Beispiel fUr für ein graphisches Unterprogrammsystem Graphische Primitive Fensterfunktionen. . . . . . . . . . . . . Diverse Prozeduren . . . . . . . . . . .. Beispiele für fUr die Verwendung von EGP . 2.4.4 Segmente . . . . . . 2.4.5 Transformationen . . . 2.4.6 Eingabefunktionen . .

70 70 71 72 72 73

2.5 Das Graphische Kernsystem Graphische Arbeitsplätze Arbeitsplătze (Workstations) . Graphische Grundelemente (Primitive) . Segmente . . . . . . . . . . . . . . . . . . . Attribute . . . . . . . . . . . . . . . . . . . Koordinatensysteme und Transformationen Bilddateien (Metafiles) . . . . . . . . . Graphische Eingabe . . . . . . . . . . Zustandslisten und Abfragefunktionen GKS-Leistungsstufen . . . . . . . Sprachschalen . . . . . . . . . . . . . Höhere graphische Programmiersprachen. Programmiersprachen . . . 2.6 H6here 2.6.1 GRAF - Eine FORTRAN-Erweiterung 2.6.2 GPLlI - Eine PLlI-Erweiterung . . . . 2.6.3 PASCALIGraph - Eine PASCAL-Erweiterung. Sprachelemente . Implementierung . . . . . . . . . . . . . .

82

74 75 77 79

81

83 84 85 86 86 87 88 88

89 89 90 90

92

93 93 103

3. Mathematische Gruodlageo Grundlagen und uod Algorithmen Aigorithmeo 3.1 Transformationen . . . . . . . . . . . . . . . 3.1.1 Window-Viewport-Transformationen . 3.1.2 Geometrische Transformationen Transformationsmatrizen. . . . .. Homogene Koordinaten . . . . . . Zusammensetzen von Transformationen Dreidimensionale geometrische Transformationen 3.1.3 Abbildungen vom Raum auf ei ne Bildebene Parallelprojektion . . . . . Perspektivische Projektion

109 109 III

3.2 Clipping . . . . . . . . . . . . . . .

121

112

113 115 117

118 118 119

Inhalt 3.2.1 Clippen von Linien . . . . . . . . . . . . . . Algorithmus von Cohen und Suthedand Sutherland Midpoint-Subdivision Clippen von Schrift . . . . . . . . . . . . Clippen von Kreisen . . . . . . . . . . . 3.2.2 Clippen von Flächen Flăchen . . . . . . . . . . . . . . Algorithmus von Hodgman und Suthedand Sutherland 3.3 Sichtbarkeit. . . . . . . . . . . . . Depth-Sort-Algorithmus . . . . . . . . . . Prioritätsverfahren Prioritătsverfahren . . . . . . . . . . . . . Z-Puffer- und Alpha-Puffer-Algorithmus . Scan-Line-Algorithmus . . . . . Area-Subdivision-Algorithmus . Sichtbarkeit durch Ray-Tracing Flăchen . . . . . . . . . . . . 3.4 Kurven und Flächen 3.4.1 Analytische Kurven und Flächen Flăchen . 3.4.2 Interpolierende Kurven. . . . . . . Interpolation durch Polynome . Kubische Splines . . . Akima-Interpolation . Ebene Interpolation. . 3.4.3 Approximierende Kurven Bezier-Kurven . B-Splines . . . . 3.4.4 Flächen Flăchen . . . . . . . Coons-Flächen CoonsFlăchen Bezier-Flächen BezierFlăchen B-Spline-Flächen B-SplineFIăchen

3.5 Raster- und Farbgraphik 3.5.1 Farben . . . . . . . . 3.5.2 Raster-Konversion . Symmetrischer DDA Einfacher DDA . . . Algorithmus von Bresenham . Kreise und Kreisbogen Kreisbögen 3.5.3 Flächenfüllen FIăchenfiillen . . . . . (YX)-Algorithmus .. . Y-X-Algorithmus .. . Grenzen Ausfiillen Ausfüllen .. Sichtbarkeit von Flächen Flăchen . 3.5.4 Schattierungen . . . . . . Ray-Tracing . . . . . . Schattierungsmodell . 3.5.5 Anti-Aliasing . . . . . . .

XI 122 123 125 126 127 128 129 130 131 133 133 134 135

137 138

140 142 143 144 145 146 148 148 151 153 154 154 155 155 156 159 160 161 161 163 163 164 165 166 166 167 168 169 172

Anhang A. Vektor- und Matrizenrechnung

181

B. Glossar Literatur . . . . . Sachverzeichnis . . . .

185 195 197