Transformation
In der »tclDisplayFunc« gibt es zwei Änderungen (Listing 2c) gegenüber dem ersten Beispiel. Statt die Kugel an einer bestimmten Stelle einzufügen, legen die beiden Tcl3D-Funktionen »glTranslatef« und »glRotatef« eine neue Anfangsposition und -orientierung fest (Zeilen 6 bis 9). Ändern sich die Variablen für die Position und Orientierung, dann befindet sich die Kugel an einer anderen Stelle. Statt die Position des Betrachters zu verändern, bewegt das vollständige Skript das ganze Modell.
01 proc tclDisplayFunc {toglwin} {
02 # Screen und Depth Buffer löschen
03 glClear [expr {$::GL_COLOR_BUFFER_BIT | $::GL_DEPTH_BUFFER_BIT}]
04
05 # Anfangsposition setzen
06 glLoadIdentity
07 glTranslatef $::Posx $::Posy $::Posz
08 glRotatef $::Rotx 1.0 0.0 0.0
09 glRotatef $::Roty 0.0 1.0 0.0
10 glRotatef $::Rotz 0.0 0.0 1.0
11
12 # Display-Liste abrufen
13 glCallList $::displayliste
14
15 $toglwin swapbuffers
16 }
|
Um die Aktionen des Benutzers zu interpretieren, verwendet das Skript die Tk-übliche Binding-Technik zusammen mit Callback-Funktionen. Die Callbacks reagieren auf Events der Maus und der Tastatur. Ein Druck auf die Cursortasten verschiebt die Kugel. Drehen am Scrollrad ändert den Abstand, bei gedrückter linker Maustaste dreht dieselbe Aktion die Kugel. Die Callbacks rufen zusätzlich ».toglwin postredisplay« auf, um nach getaner Arbeitet einen Neuaufbau des Bildes zu erzwingen.
Wer die Ergebnisse aus Tcl3D hochauflösend drucken möchte, kann dies dank Ian Gay und dessen Projekt »tclgl2ps« [11]. Das Programm erzeugt echte, skalierbare Postscript-Dokumente. Damit gelingt es, die 3D-Ansichten in voller Qualität aufs Papier zu bringen.
Weiter geht's

|
Abbildung 4: Statt jedes Element eines 3D-Modells per Skript anzulegen, können OpenGL-Programme auch fertige 3D-Modelle laden und darstellen.
|
Mit diesen Beispielen sind die ersten Schritte in OpenGL gemacht. Sie zeigen, wie ein Skript die Geometrie und die Ansichten definiert und ändert. In den wenigsten Fällen wird das Programm aber einzelne Dreiecke erzeugen, viel sinnvoller ist es, fertige Geometrien für Gebäude oder Fahrzeuge aus Modellierwerkzeugen wie Blender [12] zu verwenden (Abbildung 4). Dies und Weiteres zum Thema OpenGL wird eine der nächsten Ausgaben des Linux-Magazins vorstellen. (fjl)
|
Carsten Zerbst lebt in Hamburg und arbeitet im Bereich der Produktdatenverwaltung bei einem großen Dienstleister.
|
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|