next up previous contents
Next: Mathematik für die Computergrafik Up: No Title Previous: Visualisierung

Die Wahl der Programmiersprache

Dieses Programmsystem ist eine Mischung aus C und C++.

Warum C/C++ ?

Da C in der Praxis eine der am meisten verwendete Programmiersprache ist, gibt es fast keine Plattform für die kein C-Compiler zur Verfügung steht.

Da das Betriebssystem Linux, und die Grafische Oberfläche X in C geschrieben sind können dessen Bibliotheken vom C-Programm problemlos verwendet werden.

Durch den flexiblen Umgang mit Datenstrukturen ist C für die Grafikprogrammierung hervorragend geeignet. Bei den dynamischen Datenstrukturen wie Bäume und Listen ist ein flexibler Zugriff mit Zeigern notwendig. Sprachen die zu streng in der Typenprüfung sind oder keine Zeiger haben sind unbrauchbar.

Da in der Computergrafik die Objekte von Natur aus vorhanden sind, liegt die Implementation in C++ auf der Hand. Ein großer Vorteil gegenüber anderen Programmiersprachen, ist die Möglichkeit, der Definition von eigenen Operatoren. Mit diesen Operatoren können Operationen zwischen Vektoren, Objekten oder Farben beliebig definiert werden.

Mit den GNU-C/C++ Compiler steht für alle Nutzer eine moderne und leistungsstarke Programmiersprache zur Verfügung. Da Grafikprogramme sehr rechenintensiv sind, ist es üblich, viele Routinen in Assembler zu schreiben. C-Code ist viel leichter zu entwickeln und ist leichter zu verstehen als Assembler-Code. Durch gute Programmierung kann C++-Code die Effizienz von Assemblercode erreichen. Dieses Programm ist in C++ Code geschrieben.

Die Routinen die Funktionen aus Bibliotheken des Betriebssystems und Funktionen des X Windows aufrufen sind größtenteils in C implementiert. Die Grafikfunktionen wurden ausschließlich in C++ programmiert. Da C++ zu C kompatibel ist, wurde das gesamte Programmsystem mit dem C++ Compiler übersetzt.

Im nächsten Kapitel wird eine Anwendung der C++ Operatoren sowie die Implementierung der Vektoranalysis erläutert.



Helmut Fahrion
Sun Apr 13 15:58:19 GMT 1997