Software zur räumlichen Visualisierung geometrischer Objekte im

Transcription

Software zur räumlichen Visualisierung geometrischer Objekte im
WINCKELMANN-Gymnasium
Stadtseeallee 51/53
39576 Stendal
Software zur räumlichen Visualisierung
geometrischer Objekte im Schulunterricht
Ronny und Steffen Harbich
1.
EINLEITUNG
2
2.
GEOMETRIESOFTWARE FÜR DIE SCHULE
2
2.1
Verfügbare Geometriesoftware
2
2.2
Erwartungen an Geometriesoftware für die Schule
2
2.3
Defizite konventioneller Geometriesoftware für räumliche Darstellungen
3
3.
ALTERNATIVE GEOMETRIESOFTWARE FÜR DARSTELLUNGEN
GEOMETRISCHER OBJEKTE IM RAUM
3
Konzept
3
3.1
Realisierung
3.2
3.2.1
Programmmodell
Benutzerschnittstelle
3.2.2
3.2.2.1 Sprachinteroperabilität
3.2.2.2 Aufbau
3.2.2.3 Hilfesystem
Engine
3.2.3
3.2.3.1 Grafikkartenschnittstelle
3.2.3.2 Implementierung in die Benutzerschnittstelle
3.2.3.3 Klassen der geometrischen Objekte
3.2.3.4 XML-Implementierung
3.2.3.5 Matrizen für die Szene
3.2.3.6 Geometriedaten von Körpern
3.2.3.7 Selektierung geometrischer Objekten
3.2.3.8 Techniken für Darstellungsverbesserungen
3.2.3.9 Erweiterbarkeit
4
4
4
4
4
5
6
6
6
6
7
7
8
9
11
12
4.
BEDIENUNG
12
5.
ZUSAMMENFASSUNG
13
6.
DISKUSSION
13
7.
DANKSAGUNG
14
8.
QUELLENVERWEIS
14
Ronny und Steffen Harbich
2
1. Einleitung
Nach der erfolgreichen Teilnahme beim Wettbewerb „Jugend forscht“ im letzten Jahr haben wir uns
entschieden, den diesjährigen Wettbewerbsaufruf wahrzunehmen. Gemeinsam als Brüder arbeiteten
wir an unserem Projekt getreu nach einem Zitat von Georg Christoph Lichtenberg: „Was man sich
selbst erfinden muss, lässt im Verstand die Bahn zurück, die auch bei anderer Gelegenheit gebraucht
werden kann.“ (/1/, Seite 208)
Unser Anliegen bei dieser Arbeit besteht in der Verbesserung der informationstechnologischen Mittel
des Mathematikunterrichts an der gymnasialen Oberstufe. Denn wie so oft ergab sich aus einem
Problem, das im Folgenden näher dargelegt werden soll, ein Lösungsvorschlag. Es war in den
Sommerferien des Jahres 2003 als ich, der ältere Bruder, einen Vortrag über elementare
Vektorrechnung für den Mathematikleistungskurs 13 ausarbeitete. Dieser sollte nicht mit den sonst
üblichen Hilfsmitteln Kreide und Folie ausgeführt werden, sondern mit den neuen Computern unseres
Gymnasiums. Schon bald nach Beginn musste ich feststellen, dass sich die Erstellung komplexer
dreidimensionaler Zeichnungen als recht schwierig erwies. Da diese Abbildungen aber für einen
solchen Vortrag unerlässlich sind, überlegten mein Bruder und ich gemeinsam, wie man dieses
Problem lösen könnte. Nachdem wir dann einige Grafikprogramme ausprobiert hatten, und sich
keines als wirklich gut beurteilen lies, suchten wir nach einem eigenen Weg. Da wir beide
leidenschaftliche Programmierer sind, lag die Lösung des Problems sofort auf der Hand: Ein mit Hilfe
einer 3D-Schnittstelle erstelltes Programm musste her. So begannen wir mit der Entwicklung eines
provisorischen Programms zur Darstellung von Vektoren als dreidimensionale Pfeile in Form eines mit
einem Zylinder verbundenen Kegels. Bald darauf hielt ich erfolgreich den Vortrag mit den vom
Programm erstellten Zeichnungen vor dem Mathematikleistungskurs und schon kurz danach verlangte
die Fachlehrerschaft nach einem leicht zu bedienenden Programm zur Erzeugung solcher Grafiken.
Als wir kundgeben mussten, dass es ein Programm dieser Art nicht gäbe, überlegten wir uns, wie man
aus dem provisorischen Programm eine möglichst benutzerfreundliche Anwendung entwickeln könnte.
Und genau diese Überlegung ist der Ansatz dieser „Jugend forscht“-Arbeit, ein Lösungsvorschlag zum
Kreieren geometrischer und analytischen Abbildungen.
2. Geometriesoftware für die Schule
2.1
Verfügbare Geometriesoftware
Zurzeit werden hauptsächlich Programme, wie EUKLID DynaGeo und Cabri-géomètre II zur
Erstellung zweidimensionaler Zeichnungen genutzt. Diese können nicht nur Illustrationen erzeugen,
sondern auch diverse Berechnungen durchführen. Als Beispiel hierfür soll an dieser Stelle der
Schnittpunkt zweier Geraden genannt sein. Die Geometrieanwendungen sind schon heute ein
wichtiger Bestandteil in einem modernen Mathematikunterricht und werden in Zukunft wohl an
Bedeutung zunehmen. Dies ist durch die Tatsache begründet, dass mit solchen Anwendungen der
Mathematikunterricht für die Schüler leichter und verständlicher wird. Es befinden sich neben den
bereits genannten in der Ebene agierenden Geometrieprogramme auch Anwendungen für das
Erstellen von Abbildungen dreidimensionale Objekte auf dem Markt. Diese sind aber keine speziell für
den Mathematikunterricht an einem Gymnasium angepassten Programme, sondern vielmehr
Anwendungen, die für das professionelle Erstellen von räumlichen Figuren geeignet sind. So werden
Programme wie, discreet 3ds Max, Alias Maya, Maxon Cinema 4D und chUmbaLum sOft MilkShape
3D oft im Bereich Spieleprogrammierung eingesetzt. Weiterhin werden auch so genannte
„Raytracing“-Programme zum kreieren scheinbar realer Szenen verwendet.
2.2
Erwartungen an Geometriesoftware für die Schule
Ein Geometrieprogramm zur Darstellung geometrischer Objekte sollte nach den Erwartungen von
Lehrern an einer Schule so einfach und intuitiv wie möglich gestaltet sein. So können Lehrer aber
besonders auch Schüler diese Anwendungen benutzen, ohne sich auf ein kompliziertes Anfertigen
von Abbildungen konzentrieren zu müssen. Als Beispiel hierfür sei das Erstellen von Grafiken
während des Unterrichts genannt. So könnten ein Pädagoge und seine Schüler im Laufe der
Lehrstunde spontan, ohne großen zeitlichen Verlust den entsprechenden Unterrichtsinhalt visualisieren. Außerdem könnten mit speziell für die Schule angepassten Geometrieprogrammen nicht nur
kostenverursachende Schulungen und aufwendige Handbücher vermieden werden, sondern auch
eine Alternative zu den sonst üblichen außerordentlich teuren Anwendungen geschaffen werden.
Trotz der genannten Erwartungen sollte eine Geometriesoftware einen entsprechend ausreichenden
Funktionsumfang bieten können.
Ronny und Steffen Harbich
2.3
3
Defizite konventioneller Geometriesoftware für räumliche Darstellungen
Bis auf die oben erwähnten in der Ebene arbeitenden Geometrieanwendungen können weder
„Raytracing“-Programme, noch sonst vorhandene Software zum Erstellen dreidimensionaler Darstellungen die Forderungen nach einfacher lehrer- und schülerfreundlicher Bedienung erfüllen. An dieser
Stelle soll anhand von discreet gmax exemplarisch gezeigt werden, dass die Bedienung selbst bei
einer der einfacheren Anwendung besonders für Schüler unterer Klassenstufen schwer sein dürfte. In
Abbildung 2-1 ist die Benutzeroberfläche der zuvor genannten Software dargestellt. Schon nach einer
kurzen Betrachtung wird deutlich, dass die Anordnung der vielen Funktionselemente zu einer
vorübergehenden Verwirrung führen kann und somit die Bedienung kompliziert sein dürfte. Im
Einzelnen ist hier die große Anzahl von durch Menüs dargestellten Funktionen zu nennen, welche für
diese Anwendung notwendig sind aber für einen ungeübten Benutzer große Schwierigkeiten bedeuten
könnten. Weiterhin dürfte für einen Anwender die Tatsache, dass die meisten Programme wie gmax
nur über eine englischsprachige Benutzeroberfläche verfügen, zusätzlich erschwerend sein.
Abbildung 2-1: Komplexe Benutzeroberfläche von discreet gmax
3. Alternative Geometriesoftware für Darstellungen geometrischer
Objekte im Raum
3.1
Konzept
Um die neuartige Geometriesoftware zu realisieren, wurde auf ein sich in der Praxis bewehrtes
System zur Erstellung von im dreidimensionalen Raum arbeitenden Anwendungen zurückgegriffen.
Diese Methode besteht im Grunde darin, dass ein von der eigentlichen Software unabhängiger Kern,
die so genannte Engine, und eine Benutzerschnittstelle entwickelt werden. So ist es dann möglich, die
beiden Teilkomponenten gemäß dem Prinzip der Arbeitsteilung parallel zu erstellen und somit viel Zeit
gegenüber linearer Evolution von Anwendungen einzusparen. Weiterhin kann eine Engine, was
allerdings für die alternative Geometriesoftware nicht von Bedeutung ist, für andere im dreidimensionalen Raum arbeitenden Programme aufgrund der bereits erwähnten Ungebundenheit,
verwendet werden. Es wurde sich bei der neuartigen Geometriesoftware nicht für eine direkte
Anpassung und Einbindung entschieden, da die sonst oben genannten Vorteile nicht unterstützt
worden wären.
Ronny und Steffen Harbich
3.2
4
Realisierung
3.2.1 Programmmodell
Die alternative Geometriesoftware wurde im Grunde nach dem in der Abbildung 3-1 dargestelltem in
abstracto existierenden Modell entwickelt. Dieses beschreibt im Wesentlichen die Schritte, die von
Benutzereingabe bis zur Programmausgabe vollführt werden. Zu beginn muss der Anwender mit Hilfe
der Benutzerschnittstelle Angaben über die zu erstellenden geometrischen Objekten machen (1). Als
nächstes konvertiert die Benutzerschnittstelle die gesammelten Informationen so um (2), dass
schließlich die Engine die Daten für Direct3D Graphics bereitstellen kann (3). Im weiteren Verlauf
errechnet die Microsoft DirectX 9.0b Komponente Direct3D Graphics die Szene, die die von Benutzer
gewünschten geometrischen Objekte beinhaltet (4). Dann stellt die Hardware des Computers diese
Szene mit Hilfe der Benutzerschnittstelle dar (5) und der Anwender erhält somit die
Programmausgabe (6): ein Raum mit geometrischen Objekten.
Abbildung 3-1: Grafische Darstellung des Programmmodells
3.2.2
Benutzerschnittstelle
3.2.2.1 Sprachinteroperabilität
Die Benutzerschnittstelle der neuartigen Geometriesoftware wurde mit der objektorientierten
Programmiersprache Microsoft Visual Basic .NET 2003 entwickelt. Die Wahl dieser Sprache
begründet sich mit der Sprachinteroperabilität (/3/), also der Fähigkeit einer Programmiersprache den
Programmcode von anderen Programmiersprachen zu nutzen. Dass diese von großer Wichtigkeit ist,
zeigt sich bei der Interaktion der Benutzerschnittstelle mit der in Microsoft Visual C# .NET 2003
programmierten Engine. Die Benutzerschnittstelle und die Engine wurden nicht in einer gemeinsamen
Sprache erstellt, da beide Entwickler unterschiedliche Programmiersprache benutzen und es dank der
Sprachinteroperabilität der .NET Common Language Runtime zu keinerlei Interaktionsschwierigkeiten
kommt.
3.2.2.2 Aufbau
An dieser Stelle soll nun der Aufbau der Benutzerschnittstelle näher erläutert werden. Zunächst
einmal wurde oben, wie in Abbildung 3-2 erkennbar eine Menüleiste (/4/) erstellt. Diese ermöglicht es
dem Benutzer auf alle Funktionen, außer dem Bearbeiten der einzelnen geometrischen Objekte
zuzugreifen. Unter der Menüleiste befindet sich die so genannte Werkzeugleiste (/5/), welche die
wichtigsten Funktionen mit Hilfe kleiner bildhafter Symbole bereitstellt. In der Mitte ist ein TabseitenSteuerelement (/6/) erzeugt worden, das drei verschiedenartige Tabseiten (/7/) enthalten kann: eine
Startseite, eine oder mehrere Hilfeseiten und Seiten in denen die geometrischen Objekte dargestellt
werden. Unter dem Tabseiten-Steuerelement wurde eine Statusleiste (/8/), die kleinere Hilfen und
Informationen anzeigen kann verankert. Um die Benutzeroberfläche für den Anwender einfach zu
Ronny und Steffen Harbich
5
halten, wurden die Menüeinträge und die Einträge in der Werkzeugleiste dynamisch gestaltet. Das
heißt sie passen sich der aktuell vom Benutzer ausgewählten Tabseite so an, dass nur noch die für
die jeweilige Seitenart notwendigen Funktionen sichtbar sind. Natürlich gibt es neben den
dynamischen auch statische Einträge. Aufgrund der Verwendung des Tabseitensystems ist es leicht
möglich weitere Seitenarten zu implementieren und somit das Programm zu erweitern.
Die in der Abbildung 3-2 ausgewählte Tabseitenart in der geometrische Objekte angezeigt werden ist
die Verbindung zwischen Benutzerschnittstelle und Engine. Dort zeichnen die von der
Benutzerschnittstelle aufgerufenen Funktionen der Engine den mit geometrischen Objekten gefüllten
Raum. Damit der Anwender der neuartigen Geometriesoftware die Objekte möglichst einfach
bearbeiten kann, wurde rechts neben dem eigentlichen Darstellungsbereich ein Eigenschaftauflistungs-Steuerlement (/9/) hinzugefügt. Über dieses kann der Benutzer die Eigenschaften der
einzelnen geometrischen Objekte direkt manipulieren. Um auch hier die Benutzerfreundlichkeit zu
wahren wird zu jedem vom Benutzer ausgewählten Eigenschaftseintrag eine kurze Beschreibung
angezeigt. Weiterhin sind für viele Einträge kleine Benutzeroberfläche erstellt worden, so dass der
Anwender auch komplexe Eigenschaften einfach verändern kann. Das EigenschaftauflistungsSteuerlement erstellt die Eigenschaftseinträge mit Hilfe das so genannte System der Reflektion (/10/).
Mit diesem System können Informationen, wie Namen und Attribute (/11/) von Klassen, Methoden und
so weiter während der Laufzeit erhalten werden. So wurden den Klassen, die die geometrischen
Objekte repräsentieren Attribute, also zusätzliche Informationen zugewiesen und über eben diese ist
es dem Eigenschaftauflistungs-Steuerlement möglich Einträge zu erstellen und entsprechend auf
Benutzereingaben zu reagieren. Durch das System der Reflektion ist es weiterhin jeder Zeit möglich
neue geometrische Objekte und Eigenschaften in die Anwendung zu implementieren.
Abbildung 3-2: Benutzerschnittstelle der neuartigen Geometriesoftware
3.2.2.3 Hilfesystem
Das Hilfesystem der Geometriesoftware ist eines der wesentlichen Bestandteile, das die
Benutzerfreundlichkeit erhöht. So besteht das System in globo aus den folgenden drei Komponenten:
Die bereits oben erwähnte Hilfe bei der Auswahl eines Eintrages in dem EigenschaftauflistungsSteuerlement, die Hinweise die in der Statusleiste angezeigt werden und die die Hilfe-Tabseite. Um
ein besonders hohes maß an Bedienkomfort zu erreichen, werden bei der Erstellung von
geometrischen Objekten durch den Anwender die jeweiligen Arbeitsschritte in der Statusleiste
angezeigt. Die Hilfe beim Eigenschaftauflistungs-Steuerlement und bei der Statusleiste sind im
Gegensatz zur Hilfe-Tabseite nur eine Art Kurzhilfe, denn bei der Hilfe-Tabseite findet der Anwender
eine ausführliche Referenz und ausführliche Beispiele vor. In die Hilfe-Tabseite wurde solch ein
Ronny und Steffen Harbich
6
HTML-Steuerlement eingebettet, wie es auch beim Microsoft Internet Explorer 6 verwendet wird. Mit
diesem ist es dann möglich die HTML-Seiten der Hilfe zu visualisieren. Damit der Anwender nicht
immer erst eine ausführliche Hilfe zu einem geometrischen Objekt oder zu einer Eigenschaft suchen
muss, ist es möglich die kontextbezogene Hilfe direkt über einen Tastendruck aufzurufen.
3.2.3
Engine
3.2.3.1 Grafikkartenschnittstelle
Die mit Microsoft Visual C# .NET 2003 entwickelte Engine verwendet die Grafikkartenschnittstelle
Direct3D Graphics von Microsoft Managed DirectX 9.0b (/12/). Mit Hilfe von Direct3D Graphics ist es
der Engine möglich Objekte in einem dreidimensionalen Raum zu manipulieren und darzustellen.
Weiterhin lässt die Schnittstelle eine maximale Hardwarebeschleunigung bei höchster Kompatibilität
zu. Somit sollte die neuartige Geometriesoftware dank Direct3D Graphics auf vielen
Personalcomputern funktionieren. Es existiert neben der genannten Grafikkartenschnittstelle auch
noch eine weitere Namens OpenGL, jedoch kam diese aufgrund des Fehlens einer Klassenstruktur in
der API und der unzureichenden Unterstützung der .NET Common Language Runtime nicht in Frage.
3.2.3.2
Implementierung in die Benutzerschnittstelle
Die Engine stellt der Benutzerschnittstelle, wie in
Abbildung 3-3 erkennbar ein Steuerelement, das
den Namen RenderPanel trägt, zur Verfügung.
Dieses erbt von der .NET Klasse UserControl
(/13/) und erfüllt somit die übliche .NET
Spezifikation.
Solange
der
Benutzer
geometrische Objekte erstellt oder bearbeitet
befindet sich das RenderPanel im Fenstermodus.
Als Fenstermodus wird der Zustand bezeichnet,
bei dem der mit geometrischen Objekten gefüllte
Raum in einem Programmfenster angezeigt wird.
Abbildung 3-3: Direct3D Graphics Implementierung
Im Gegensatz dazu steht der Vollbildmodus, bei
welchem der gesamte Bildschirm die Szene
darstellt. Der qualitativ bessere Vollbildmodus ist zu Präsentationszwecken gedacht und kann
jederzeit über die Benutzerschnittstelle aufgerufen werden.
3.2.3.3 Klassen der geometrischen Objekte
Im weiteren Verlauf soll die Organisierung der geometrischen Objekte zu einer Klassenstruktur, wie in
Abbildung 3-4 dargestellt, erläutert werden. Zunächst einmal wurde die abstrakte Basisklasse
RenderObject erstellt. In dieser sind alle diejenigen Eigenschaften und Funktionen vorhanden, die
jedes in der Szene darstellbare Objekt durch Vererbung besitzen muss. Beispiele für gemeinsame
Eigenschaften der Objekte sind Farbe, Sichtbarkeit und so weiter und Beispiele für gemeinsame
Funktionen sind das Schreiben und Lesen von XML-Daten. Die darstellbaren Objekte werden in
Abbildung 3-4 von links nach rechts in folgende Gruppen eingeteilt: Zuerst sind die Klassen der
zweidimensionalen, dann die der dreidimensionalen geometrischen Objekte erkennbar und
anschließend die Klassen für die Beschriftung. Jede von RenderObject abgeleitete Klasse hat eine so
genannte „has a“-Beziehung zu der Punkt-Klasse, da jedes darstellbare Objekt mindestens einen
Punkt aufweisen muss. Als Besonderheit der Vererbungshierarchie der zweidimensionalen
geometrischen Objekte ist zu bemerken, dass die Ellipse-Klasse und die Circle-Klasse von der
PolygonBase-Klasse abgeleitet wird. Dies ist damit zu begründen, dass eine Ellipse beziehungsweise
ein Kreis in der euklidischen Geometrie ein Polygon mit unendlich vielen Ecken ist. Allerdings lässt
sich dies vom Computer nicht realisieren, indes nutzt er eine hohe Anzahl von Ecken, um scheinbar
reale Ellipsen und Kreise darzustellen. Analog dazu sind auch bei den dreidimensionalen
geometrischen Objekten Besonderheiten vorhanden: So wird der Kegelstumpf vom Pyramidenstumpf
und der Zylinder vom Prisma abgeleitet, da die Grundflächen dieser Objekte jeweils den oben
genannten Sachverhalt entsprechen. Weiterhin erben die Pyramide vom Pyramidenstumpf und der
Kegel vom Kegelstumpf aufgrund der Tatsache, dass die Nicht-Stümpfe ein Spezialfall der Stümpfe in
der Hinsicht werden, dass die Flächeninhalte der Deckflächen null und somit jeweils nur noch ein
Punkt sind. Als dritte und letzte Gruppe werden die Klassen für Beschriftung näher erläutert. Die
beiden Klassen Text2D und Text3D sind von der Klasse TextBase abgeleitet und sind für die
Darstellung von zweidimensionalen beziehungsweise dreidimensionalen Text verantwortlich. Die
Basisklasse enthält einige Eigenschaften wie Schriftart, Schriftgröße und so weiter. Außerdem
beinhaltet die Gruppe die Image-Klasse, mit der Bilder unter Verwendung der Billboarding-Technik
dargestellt werden können. Der Benutzer erhält somit die Möglichkeit eigene Grafiken, die er
Ronny und Steffen Harbich
7
beispielsweise mit mathematischen Formeln oder Sonderzeichen füllen kann, einzubinden. Unter dem
Namen „Styles for points“ befinden sich weitere Klassen, die nicht von RenderObject erben, jedoch
auch mit den geometrischen Objekten in Verbindung stehen: Sie definieren die Visualisierung eines
einzelnen Punktes. Durch die Verwendung einer Schnittstelle Namens IPointStyle lässt sich die
Vielfalt der verschiedenen Darstellungsmöglichkeiten leicht variieren und erweitern.
Abbildung 3-4: Vererbungshierarchie der Klassen der geometrischen Objekte
3.2.3.4 XML-Implementierung
Neben den Eigenschaften zur Darstellung eines geometrischen Objekts enthält jede von
RenderObject abgeleitete Klasse auch Funktionen, die das Speichern und Laden eines
geometrischen Objektes ermöglichen. Um eine gesamte Szene in eine Datei abzuspeichern, ruft die
Engine die Speichern-Funktion von jedem einzelnen geometrischen Objekt auf. Der Vorgang des
Ladens und Speicherns erfolgt mit Hilfe der Extensible Markup Language, kurz XML (/14/). Die
Verwendung dieser Markierungssprache begründet sich in der guten Lesbarkeit des abgespeicherten
Dokuments, in der sehr einfachen Erweiterbarkeit sowie in Abwärtskompatibilität. Die Abbildung 3-5
zeigt eine in XML abgespeicherte Szene in der eine Linie vorhanden ist.
<?xml version="1.0" encoding="utf-16"?>
<VectorRender>
<Light />
<Camera rotx="0" roty="1,57">
<Point x="3" y="3" z="10" />
</Camera>
<Objects>
<Line color="-16711681" locked="False" visible="True" ptcount="2">
<Style type="PointStyleCube" edgelength="0,1" />
<Point x="0" y="0" z="0" />
<Point x="10" y="0" z="0" />
</Line>
</Objects>
</VectorRender>
Abbildung 3-5: Beispiel einer XML-Datei
3.2.3.5
Matrizen für die Szene
Ronny und Steffen Harbich
8
Ein weiterer wichtiger Bestandteil der Engine ist die hauptsächlich Vektoren und Matrizen umfassende
Mathematik. So wird die Szene durch Direct3D Graphics folgendermaßen berechnet: Um die
dreidimensionalen Daten der geometrischen Objekte der Szene in ein zweidimensionales Bild auf
dem Bildschirm umzuwandeln, also sie zu transformieren, verwendet Direct3D Graphics 4x4 Matrizen
nach folgender Formel:
[x
y
z
1] = [ x
y
z 1] M = [ x
y
z 1]
M11
M 21
M 31
M 41
M12
M 22
M 32
M 42
M13
M 23
M 33
M 43
M14
M 24
M 34
M 44
Aus der Vereinfachung der Matrixmultiplikation, ergibt sich die folgende Komponentenschreibweise:
x = ( x M11 ) + ( y M 21 ) + ( z M 31 ) + (1 M 41 )
y = ( x M12 ) + ( y M 22 ) + ( z M 32 ) + (1 M 42 )
z = ( x M13 ) + ( y M 23 ) + ( z M 33 ) + (1 M 43 )
Wird nun für die Matrix
M das Produkt aus der world matrix, der view matrix und der projection
[ x y z ] die Geometriedaten der Szene eingesetzt, ergibt sich der
matrix und für den Punkt
transformierte Punkt
[x
y
z ] , bei dem die Koordinaten x und y den resultierenden Punkt auf
dem Bildschirm darstellen (/15/). Ohne auf weitere Details einzugehen, ist die world matrix für
Translation, Rotation und Skalierung, die view matrix für die Position und Richtung des Betrachters
und die projection matrix für die perspektivische Darstellung verantwortlich. Außerdem kann mit Hilfe
der projection matrix festgelegt werden, ob das kartesisches Koordinatensystem ein rechts- oder
linkshändiges ist. Nach der Berechnung der Position auf dem Bildschirm erfolgen weitere
Operationen, die die Farbewerte des Pixels bestimmen, auf die aber im Nachkommenden nicht näher
eingegangen werden kann.
3.2.3.6
Geometriedaten von Körpern
Als nächstes soll die Berechnung der
Geometriedaten anhand des Beispiels Kugel
dargelegt werden. Hierzu muss jedoch vorab
geklärt sein, dass Geometriedaten Informationen
sind, die Direct3D Graphics benötigt, um primitive
Objekte wie Dreiecke, Linien oder Punkte, welche
die
Grundelemente
einer
Szene
sind,
darzustellen. Direct3D Graphics ist ausschließlich
in der Lage primitive Objekte (/16/) anzuzeigen
und somit muss jedes geometrische Objekt aus
diesen primitiven Objekten aufgebaut werden. Ein
kugelähnlichen Körper, welcher ein solches
geometrisches Objekt ist, wird, wie in Abbildung
3-6 durch Blau und Grün gekennzeichnet, in
immer kleiner werdende parallele horizontale
regelmäßige Polygone und in gleich groß
bleibende
vertikale
regelmäßige
Polygone
eingeteilt. Dieses System ist im Wesentlichen mit
den Breiten- und Längengraden der Erde
vergleichbar. Die vier Schnittpunkte zweier
Abbildung 3-6: Kugelähnlicher Körper mit dreieckigen
nebeneinander
liegender
horizontaler
und
Flächen
vertikaler Polygone bilden ein Viereck, das in zwei
Dreiecke unterteilt wird. Nach der Einteilung kann dieses geometrische Objekt nicht mehr als Kugel
bezeichnet werden, de facto ist aufgrund der Dreiecksflächen ein kugelähnlicher Körper entstanden.
Um dennoch eine scheinbar reale Kugel in der Szene darzustellen, wird die Anzahl der horizontalen
und vertikalen Polygone einfach erhöht, sodass die entstehenden Dreiecksflächen sehr klein sind. Die
eigentliche Berechnung der Punkte des kugelähnlichen Körpers wird durch die folgenden Gleichungen
beschrieben:
Ronny und Steffen Harbich
(3.1)
i
=
9
i
nh
ri = cos (
2
)
hi = sin ( i )
(3.2)
(3.3)
(3.4)
k
2
=
k
nv
k
yi ,k = hi
(3.6)
zi ,k = sin (
(3.7)
)
- Anzahl der horizontalen Kreise
•
•
•
i
- Winkel zur Berechnung von
k
und hi
- Winkel zur
•
rK
ri
•
k
)
0 i
nh
k
- Anzahl der vertikalen Kreise
- aktueller horizontaler Kreis
- aktueller vertikalen Kreis
Berechnung
ri
der
Koordinaten xi ,k , zi ,k
ri
ri
- Radius für den i -ten horizontalen
•
hi
Kreis
- Höhe für den i -ten horizontalen
•
xi ,k , yi ,k , zi ,k - Punktkoordinaten für i, k
•
i
- Radius der Kugel
nh
nv
i
k
•
rK
i
xi ,k = cos (
(3.5)
Legende:
rk
•
0 k
nv
Kreis
Zu beginn wird der Radius ri eines i -ten horizontalen
Polygons berechnet. Hierzu muss der Winkel i , wie in
y
Gleichung (3.1) angegeben, bestimmt und anschließend
in die trigonometrischen Gleichungen (3.2) und (3.3)
eingesetzt werden. Die Abbildung 3-7 soll dies
verdeutlichen. Weiterhin können die Koordinaten xi ,k
ri
rK
hi
= yi ,k
i
ri
x
und zi ,k über die Winkelfunktionen Sinus und Kosinus,
wie in Abbildung 3-8 dargestellt, über die Gleichungen
(3.5) und (3.7) errechnet werden. Die fehlende
Koordinate yi ,k entspricht der Höhe hi .
z
Abbildung 3-7: Horizontales Polygon mit
Umkreis
k
y
x
ri
( xi,k ; zi,k )
z
Abbildung 3-8: Draufsicht eines horizontalen
Polygons
3.2.3.7 Selektierung geometrischer Objekten
Die Benutzerschnittstelle bietet dem Anwender die Möglichkeit geometrische Objekte zu selektieren.
Damit dies so einfach wie möglich umgesetzt werden kann, stellt die Engine eine solche Funktion zur
Verfügung. Selektion heißt, dass der Benutzer mit der Maus auf das Szenen darstellende
Steuerelement klickt und dabei auf ein geometrisches Objekt zeigt. Um eine Selektion zu realisieren,
Ronny und Steffen Harbich
10
muss die Engine jedes geometrische Objekt in der Szene auf einen Schnitt mit einem Strahl
überprüfen. Dieser Strahl ist durch die Kameraposition und einer Richtung definiert, die sich aus der
aktuellen Mausposition berechnet. Das Zustandekommen der Richtung kann an dieser Stelle nicht in
extenso beschrieben werden. Falls nun ein geometrisches Objekt durch diesen Strahl geschnitten
wird und von den übrigen geschnittenen Objekten der Szene die geringste Entfernung zur
Kameraposition hat, wird dieses als ausgewählt beizeichnet. Im folgendem soll anhand des primitiven
Objekts Dreieck eine solche Selektionsüberprüfung dargelegt werden:
Damit ein Strahl, dessen Punkte die Menge R bilden, ein
Dreieck schneidet, müssen folgende Bedingungen erfüllt
sein: Der Strahl muss die Ebene in der sich das Dreieck
befindet, wie in Abbildung 3-9 dargestellt, schneiden und der
Schnittpunkt muss in diesem Dreieck liegen. Gegeben sei
s
n
also der Kamerapunkt K , der Richtungsvektor r des
Strahls s und die Punkte P1 , P2 , P3 des Dreiecks. Die
Punkte der Ebene bilden die Menge E . Mit den drei Punkten
erstellt
des Dreiecks wird zunächst die Dreiecksebene
(3.8). Um nun einen Schnitt von Strahl und Ebene
festzustellen,
wird
das
Punktprodukt
von
dem
r
P3
P2
P1
K
Richtungsvektor r und dem Normalenvektor n errechnet
(3.9). Sobald dieses Produkt Null ist stehen die Vektoren
senkrecht zu einander und der Strahl schneidet die Ebene
entweder in unendlichen vielen Punkten (3.10) oder in keinem (3.11). Um auszuschließen, dass sich
der Strahl in der Ebene Befindet, darf der Punkt K nicht in E enthalten sein. Es gibt genau dann
Abbildung 3-9: Schnitt von Strahl und Ebene
einen Schnittpunkt, wenn das Punktprodukt von
r und n nicht Null ist (3.12).
A
n = P1P2 × P1P3 = B
C
D=
(3.8)
( AP
1x
+ BP1y + CP1z
)
: Ax + By + Cz + D = 0
s:
(3.9)
x
y = OK + t r ; t
z
0
n r = A rx + B ry + C rz = n r cos (
(3.10)
(3.11)
(3.12)
n r=0 K E
n r = 0 K "E
n r#0
n!r R
n!r s
)
E
R $ E =1
Als nächstes erfolgt eine Berechnung zur Bestimmung des Schnittpunkts von Strahl und Ebene.
(3.8) eingesetzt und nach dem
Hierzu wird die Strahlengleichung s (3.9) in die Ebenengleichung
Parameter
t so aufgelöst, dass schließlich der Parameter t s für den Schnittpunkt übrig bleibt (3.13).
Ronny und Steffen Harbich
11
(
)
A ( K x + t s rx ) + B K y + ts ry + C ( K z + ts rz ) + D = 0
A Kx + B K y + C Kz + D
ts =
(3.13)
ts
A rx + B ry + C rz
=
A Kx + B K y + C Kz + D
n r cos (
)
0
Danach erfolgt ein Einsetzen von t s in die Strahlengleichung, sodass letztendlich der Schnittpunkt S
errechnet wird (3.14).
Sx
s : OS = S y = OK +
(3.14)
A Kx + B K y + C Kz + D
Sz
(
S Sx ; S y ; Sz
A rx + B ry + C rz
)
Anschließend muss noch überprüft werden, ob sich der Schnittpunkt
innerhalb des Dreiecks befindet. Die Abbildung 3-10 zeigt das Dreieck in
grüner und den Schnittpunkt S in blauer Farbe. Wenn sich ein Punkt in
einem Dreieck befindet muss folgendes erfüllt sein: Die Summe der
P3
Winkel zwischen den Vektoren
P1
r
SP1 , SP2 und SP3 muss 360°
betragen oder die Summe der Barizentrischen Koordinaten muss Eins
sein (3.15).
'
P2
Abbildung 3-10: Schnittpunkt
im Dreieck
a b = ax bx + a y by + az bz = a b cos (& )
& = arccos
ax bx + a y by + az bz
a b
(3.15)
= arccos
+
SP1 SP3
SP1 SP3
+ ' = 360°
= arccos
SP3 SP2
SP3 SP2
x OP1 + y OP2 + z OP3 = OS
' = arccos
SP2 SP1
SP2 SP1
x + y + z =1
Die oben dargelegte Methodik überprüft nur, ob ein Dreieck von einem Strahl getroffen wird oder
nicht. Da ja Polygone, Ellipsen und alle dreidimensionalen geometrischen Objekte aus Dreiecken
bestehen muss die Engine jeweils für alle Dreiecke dieser Objekte die oben beschriebenen
Überprüfungen vornehmen. Wenn mehrere geometrische Objekte von dem Strahl getroffen werden
muss anhand der Schnittpunkte bestimmt werden, welches sich näher am Kamerapunkt befindet.
Natürlich wird der Überprüfungsvorgang aufgrund numerischer Optimierungsgründen bei bestimmten
aus vielen Dreiecken aufgebauten geometrischen Objekten, wie zum Beispiel der Kugel anders
verlaufen. Auch wurde in der Engine eine verbesserte Version der beschriebenen Vorgehensweise
implementiert. Diese kann jedoch an dieser Stelle nicht näher erläutert werden.
3.2.3.8 Techniken für Darstellungsverbesserungen
Die Engine verwendet die so genannte Billboarding-Technik (/17/). Im Grunde versucht dieser Effekt
zweidimensionale Objekte, wie Bilder und Schriften zu scheinbar dreidimensionalen Objekten zu
verändern. Hierzu findet eine Rotation des Objekts statt, sodass die Bild- beziehungsweise die
Ronny und Steffen Harbich
12
Schriftfläche immer exakt zur Kameraposition gerichtet ist. Ein
Anwendungsbeispiel wäre die Beschriftungen der Koordinatenachsen,
welche sich bei jeder Bewegung in einer Szene automatisch zum
Betrachter drehen würden. Eine weitere verwendete Technik, dass so
genannte Hardware Transform And Lighting, kurz T&L, ermöglicht der
Engine die volle Hardwareunterstützung im Bereich der
Transformations- und Lichtberechnung auszunutzen. So werden, statt
die CPU zu belasten, diese notwendigen Berechnungen auf die
Graphics Processing Unit, kurz GPU, umgeleitet. Die Engine kann bei
bedarf auch auf eine Technik zurückgreifen, die heutige Grafikkarten
im Allgemeinen unterstützen. Die Rede ist von Anti-Aliasing. Die
Abbildung 3-11 soll verdeutlichen, wie das Verfahren funktioniert.
Dazu wurde oben in der Abbildung eine Linie gezeichnet ohne die
Abbildung 3-11: Linie mit und
Verwendung von Anti-Aliasing und unten eine Linie mit der
ohne Anti-Aliasing
Verwendung dieser Technik. Das Ergebnis zeigt, dass bei NichtNutzung dieser Technologie der so genannte qualitätsreduzierende
Treppeneffekt entsteht. Um nun diesen Effekt zu unterbinden, vermischt das Anti-Aliasing-System die
Farben der am Rand der Linie befindlichen Bildpunkte mit den Farben der benachbarten Bildpunkte
des Hintergrunds. Anti-Aliasing erhöht die Qualität, jedoch ist auf eine eventuell verringerte Leistung
zu achten. Damit auch eine hohe Qualität bei der Darstellung von Bildern und Schriften gewährleistet
1
werden kann, unterstützt die Engine optional anisotropische Texturfilterung (/18/) und Mipmapping
(/19/). Das Prinzip der Texturfilterung durch Mipmapping besteht aus der Benutzung mehrer zuvor mit
hoher Qualität berechneter verkleinerter Texturen, den Mipmaps. Verwendet man zum Beispiel eine
Originaltexturgröße von 256x256, so werden die Formate 128x128 und 64x64 automatisch generiert.
Direct3D Graphics entscheidet schließlich beim Zeichnen, welche Größe der Texturen am besten für
die momentane Darstellung geeignet ist. Anisotropische Filterung dagegen ist ein ähnliches Verfahren
wie die lineare Texturfilterung, berücksichtigt jedoch die perspektivische Verzerrung und interpoliert
die Textur qualitativ besser je tiefer sich ein Objekt befindet.
3.2.3.9 Erweiterbarkeit
Die Erweiterbarkeit der Engine steht bei der Entwicklung mit an oberster Stelle. Erweiterbarkeit heißt,
dass die Funktionalität der Engine auf einfachem Wege ausgeweitet und verändert werden kann. Dies
ermöglicht eine ständige Weiterentwicklung, welche wiederum gestattet neue Arten geometrischer
Objekte, neue Effekte und neue Techniken zu verwenden. Damit kann die Aktualität der Engine in
hohem Maße gewährleistet werden. In der Praxis wird ein solches Ziel berücksichtigt und umgesetzt,
indem die Klassenstruktur von Anfang an gut durchdacht und ausbaufähig gestaltet wird. Hierzu zählt
zum Beispiel die Verwendung von Basisklassen, die so abstrakt wie möglich und so angepasst wie
nötig die Aufgaben der Quelltext-Einsparung und der Übersicht übernehmen.
4. Bedienung
Der Aufbau der Benutzeroberfläche erfolgte so, dass die Bedienung für den Anwender relativ einfach
ist. Anhand der folgenden exemplarischen Vorgehensweise soll die Erstellung einer Szene mit einer
Kugel verdeutlicht werden: Zu Beginn muss der Benutzer über den Untermenüeintrag „Neu…“ im
Menüpunkt „Datei“ eine neue Szene erstellen. Das Programm wird anschließend eine neue Tabseite,
in der die Szene dargestellt wird, erstellen und anzeigen. Standardmäßig wird ein Koordinatensystem
mit Pfeilen für die X-, Y- und Z-Achse angezeigt. Um nun ein geometrisches Objekt, zum Beispiel eine
Kugel, zu erstellen, gibt es zwei Möglichkeiten. 1. Falls dem Benutzer die exakten Koordinaten der
Punkte eines geometrischen Objekts bekannt sein sollten, kann er diese über einen Dialog angeben.
Für eine Kugel wären zum Beispiel Mittelpunkt und Radius nötig. Nach dem Bestätigen des Dialogs
wird das Objekt mit den angegebenen Werten erstellt und sichtbar. 2. Der Benutzer kann nach bedarf
ein Objekt auch mit der Maus erstellen und bearbeiten. Hierzu muss dieser lediglich den Hinweisen
der Statusleiste des Programms folgen, die die Reihenfolge der Punkterstellung vorgibt. Ein Punkt
wird erstellt, indem der Benutzer mit der Maus auf die X-Z-Ebene zeigt, um die Koordinaten X und Z
festzulegen. Hält der Anwender eine Taste, standardmäßig die Umschalt-Taste, gedrückt, so bezieht
sich die Mausbewegung auf das Festlegen der Y-Koordinate. Um eine Kugel mit der Maus zu
erstellen, muss der Anwender den Mittelpunkt nach der oben genannten Art und Weise erzeugen und
schließlich durch Bewegen der Maus den Radius festlegen. Nachdem nun die Kugel oder andere
geometrischen Objekte erzeugt worden sind, sollte der Benutzer die Szene über den Menüeintrag
„Speichern“ beziehungsweise „Speichern unter…“ im Menüpunkt „Datei“ sichern. Dies ist notwendig,
1
MIP steht für multum in parvo, was soviel wie „Viele unter Gleichen“ bedeutet (/2/, Seite 192).
Ronny und Steffen Harbich
13
damit die Szene in folgenden Sitzungen wieder geladen werden kann. Neben dem Erstellen ist auch
das Bearbeiten eines Objekts beziehungsweise dessen Punkte mit der Maus möglich. Hierzu wählt
der Benutzer ein geometrisches Objekt aus und verschiebt die einzelnen Punkte nach der oben
beschriebenen Art und Weise. Andere Eigenschaften, sowie die Koordinaten der Punkte können auch
direkt im Eigenschaftauflistungs-Steuerlement manipuliert werden.
5. Zusammenfassung
Von dem Ziel motiviert den Unterricht an Schulen besser zu gestalten, entwickelten wir eine speziell
angepasste Software zur räumlichen Darstellung geometrischer Figuren. Mit ihr haben Lehrer aber
besonders auch Schüler nun die Möglichkeit, während des Unterrichts leicht und schnell geometrische
Objekte zu erzeugen. So kann der entsprechende Lehrinhalt innerhalb kürzester Zeit, ohne
aufwendige Vorbereitungen, visualisiert werden. Anstelle der Betrachtung langweiliger und lebloser
Einzelbilder eines mit Figuren gefüllten Raums, gestattet die neue Software dem Anwender eine freie
Bewegung in allen beliebigen Richtungen. Auch lässt sich der Raum in automatische Rotation
versetzen, wodurch sich die Illusion von Räumlichkeit zusätzlich erhöht. Um geometrische Objekte
anzeigen zu lassen, verfügt die Anwendung über einen so genannten Präsentationsmodus. Mit
diesem wird eine hervorragende Unterstützung von Bildschirmen und digitalen Projektoren erreicht,
indem der gesamte Darstellungsbereich für die Visualisierung des Raums genutzt wird. Die neue
Software verfügt notwendiger Weise über einen Erstellungsmodus. Dieser ermöglicht es dem
Anwender, die räumlichen Figuren anzufertigen und zu bearbeiten. Dank einer sich, je nach
Funktionsbedarf dynamisch anpassender Benutzeroberfläche und einer vor allem mit der Maus leicht
zu bedienenden Anfertigung der Objekte, ist der gesamte Erstellungsprozess besonders
anwenderfreundlich gestaltet worden. Weiterhin spielt das integrierte Hilfesystem innerhalb der
Software eine große Rolle. So wird dem Benutzer beispielsweise eine Hilfe eingeblendet, die die
einzelnen Konstruktionsschritte während der Erzeugung eines geometrischen Objekts darlegt.
Die Software wurde mit der hochmodernen Entwicklungsumgebung Microsoft Visual Studio .NET
2003 und mit Microsoft DirectX 9.0b, einer der besten und leistungsfähigsten
Grafikkartenschnittstellen kreiert. Die beiden Systeme garantieren höchste Grafik- und
Benutzungsqualität für den Anwender und eine optimale Erweiterbarkeit der Software für die
Entwickler. So ist es beispielsweise möglich, neue noch nicht implementierte geometrische Objekte zu
integrieren, ohne dabei tief greifende Veränderungen am Programm vornehmen zu müssen. Um die
Grafik auf den heutigen Stand anzupassen, wurden die auch in Computerspielen verwendeten
Techniken, wie Billboarding, anisotropische Texturfilterung, Anti-Aliasing und Hardware Transform
And Lighting eingesetzt.
Schlussendlich sollte noch beachtet werden, dass bereits im dreidimensionalen Raum arbeitende
Software auf dem freien Markt existiert. Diese oftmals exorbitant teuren Anwendungen sind allerdings
nur für professionelle Benutzer, die in Bereichen wie Architektur und Wissenschaft arbeiten, geeignet.
Unsere kostenfreie Software hingegen sollte eine echte, für Schüler und Lehrer leicht zu verwendende
Alternative sein.
6. Diskussion
Die entwickelte Software scheint allen Anforderungen gerecht zu werden, die sich unter anderem aus
den Nachteilen der konventionellen für den dreidimensionalen Raum konzipierten Geometriesoftware
ergeben haben. Jedoch muss an dieser Stelle verdeutlicht werden, dass die Geometriesoftware selbst
noch Verbesserungspotential aufweist. Ein Beispiel dafür sind die fehlenden Berechnungen für
Schnittpunkte, Winkel und so weiter, die typischerweise von zweidimensionaler Geometriesoftware
zur Verfügung gestellt werden. Jedoch ist dies zur Zeit nicht das Hauptanliegen des Projekts solche
Berechnungen zu implementieren, da die Software ausschließlich für Visualisierungen genutzt werden
soll. Weiterhin ist zu beachten, dass die Software nicht auf allen gebräuchlichen Plattformen
funktioniert. So ist es aufgrund der Verwendung von DirectX 9.0b nicht möglich die Anwendung auf
Windows 95, Linux oder Mac OS zu betreiben. Dennoch stellt die Plattformabhängigkeit kein größeres
Problem dar, da ja viele Anwender Windows 98/2000/XP oder 2003 auf ihrem Heim-PC benutzen.
Neben den oben genannten Plattformen wird außerdem vorausgesetzt, dass der Benutzer eine
DirectX 9 kompatible Grafikkarte und einem hinreichend leistungsstarken Prozessor besitzt.
Einer der Größten Vorteile der Geometriesoftware ist wohl die besonders einfache Bedienung
gegenüber professioneller im dreidimensionalen Raum arbeitender Programme. So verbessern viele
kleine Benutzeroberflächen das Erstellen, Betrachten und Bearbeiten von Informationen. Weiterhin
Ronny und Steffen Harbich
14
werden, um ein hohes Maß an Übersichtlichkeit zu erreichen, auch immer nur die Funktionen des
Programms sichtbar, die zur Zeit tatsächlich benötigt werden. Außerdem können geometrische
Objekte mit der Maus problemlos erstellt und bearbeitet werden. Das Hilfesystem sollte zusätzlich das
Erlernen des Umgangs mit der Anwendung erleichtern und somit teure Schulungen oder
Einführungskurse vermeiden. Die Geometrieanwendung soll natürlich für den Unterricht geeignet sein.
So ist es dank des Vollbildschirm-Modus möglich alle anderen Anwendungen gewissermaßen
auszublenden, um nur den mit geometrischen Objekten gefüllten Raum anzeigen zu lassen. Damit ein
besserer räumlicher Eindruck entsteht, lässt sich die Szene in eine automatische Rotation versetzen,
wenngleich auch die Möglichkeit zur freien Bewegung in dieser besteht. Eine sinnvolle Darstellung mit
Hilfe von digitalen Projektionsapparaturen wie zum Beispiel dem Beamer wird somit außerdem
unterstützt. Sollte einmal kein Personalcomputer für die Präsentation von geometrischen Objekten
vorhanden sein, ist es Möglich die Szene auf Papier auszudrucken. Einen besonderen Vorteil erhält
die Anwendung durch die allgemeine Erweiterbarkeit. Mit ihr können beispielsweise neue
geometrische Objekte, Eigenschaften und zusätzliche Hilfen äußerst einfach hinzugefügt werden. Die
Software soll weiterhin nicht nur an Schulen direkt, sondern auch bei den Schülern zu Hause
eingesetzt werden. So wurde sich letztendlich für eine vollkommen kostenlose und frei kopierbare
Anwendung entschieden.
Wir hoffen, dass die Geometriesoftware bei vielen Lehrern und Schülern Anklang finden wird.
7. Danksagung
Unser größter Dank gilt unserem Betreuungslehrer Herrn Maik Schnitzer, der uns bei der Korrektur
dieser Wettbewerbsarbeit und beim Testen der neuartigen Geometriesoftware mehr als nur
lobenswert unterstützt hat. Wir bedanken uns außerdem beim Winckelmann-Gymnasium Stendal und
bei unseren Eltern Gudrun und Klaus Harbich für die finanziellen und technischen Beiträge zu
unserem Projekt.
8. Quellenverweis
/1/
/2/
PHYSIK - Themen, Bedeutung, und Perspektiven physikalischer Forschung
Herausgeber: Deutsche Physikalische Gesellschaft e. V. (DPG), 53604 Bad Honnef, 2000
Uwe Kettermann und Christian Schmelzer: directX mit visual basic programmieren,
Markt+Technik Verlag, 81829 München, 2000
Folgende Verweise beziehen sich auf des Microsoft Developer Network (MSDN) von Microsoft Visual
Studio .NET 2003 Academic:
/3/ Übersicht über die Sprachinteroperabilität,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpguide/html/cpconcross-languageinte
roperability.htm
/4/ Menu-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsM
enuClassTopic.htm
/5/ ToolBar-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsT
oolBarClassTopic.htm
/6/ TabControl-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsT
abControlClassTopic.htm
/7/ TabPage-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsT
abPageClassTopic.htm
/8/ StatusBar-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsSt
atusBarClassTopic.htm
/9/ PropertyGrid-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsP
ropertyGridClassTopic.htm
/10/ Übersicht über Reflektion,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpguide/html/cpconreflectionoverview.
htm
Ronny und Steffen Harbich
15
/11/ Übersicht über Attribute,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/vbcn7/html/vaconattributesoverview.ht
m
/12/ Introducing DirectX 9.0 for Managed Code,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_m/directx/dx9intro.htm
/13/ UserControl-Klasse,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpref/html/frlrfSystemWindowsFormsU
serControlClassTopic.htm
/14/ XML in Visual Studio,
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/vsintro7/html/vxorixmlinvisualstudio.ht
m
/15/ Vertex and Pixel Processing,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_c/directx/graphics/programmingguide/fixe
dfunction/legacyfvfformats/vertexandpixelprocessing.htm
/16/ Devices 7. Device-Supported Primitive Types,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_m/directx/direct3d/gettingstarted/devices/
primitives/devicesupportedprimitivetypes.htm
/17/ Billboarding,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_c/directx/graphics/programmingguide/adv
ancedtopics/framebuffer/alphaexamples/billboarding.htm
/18/ Anisotropic Texture Filtering,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_c/directx/graphics/programmingguide/fixe
dfunction/textures/filtering/anisotropicfiltering.htm
/19/ Texture Filtering with Mipmaps,
ms-help://MS.VSCC.2003/MS.DirectX9.1033/DirectX9_c/directx/graphics/programmingguide/fixe
dfunction/textures/filtering/texturefilteringwithmipmaps.htm