SG Netzwerk      
Donnerstag, 06. Januar 2005, 22:24
Programmierung: Plane Mania
Sichtbarkeitsbestimmung, Ereignis-Zonen oder gar "Selektieren über ein Rechteck ziehen" – all dies lässt sich mit Ebenen realisieren.

1. Einleitung

Ebenen müsste jeder bereits aus der Schulmathematik kennen. Aber genauso wie bei Vektoren, Matrizen etc. bekam man nicht wirklich gesagt für was man dieses Dinge überhaupt benötigt, und so verdrängte man das Wissen schnell wieder. Spätestens aber wenn

man sich mit z.B. 3D Programmierung befasst kommt man nicht um diese früher als eigentlich nutzlos erschienenen Dinge herum und man erkennt schnell die vielen praktischen Anwendungen von Ebenen, Vektoren und Matrizen.

In diesem Artikel soll gezeigt werden das viele Programmiertechnische Probleme wie die Sichtbarkeitsbestimmung, Ereignis-Zonen oder gar "Selektieren über ein Rechteck ziehen" wie man es aus vielen Echtzeitstrategie-Spielen kennt im Prinzip auf arbeiten mit Ebenen reduziert werden können - und so gesehen alles immer gleich abläuft. Man braucht also keine speziellen und umfangreichen Klassen für Beispielsweise den Kamera Frustum sondern man hat eine Ebenen-Basisklasse und eine Klasse welche eine Menge von Ebenen verwaltet und Methoden darauf anbietet. Von dieser grundliegenden "Ebenen Menge"-Klasse lassen sich dann beispielsweise Anwendungs spezifischere Klassen ableiten welche aus einer Projektion Matrize die Kamera Frustum Ebenen erzeugt, eine Ereignis-Zone darstellen etc.

Ich setzte Basiswissen über Ebenen, Vektoren und Matrizen voraus - daher beschreibe

ich nur sehr Oberflächlich diese Mathematischen Dinge um alles

noch mal kurz ins Gedächtnis zu rufen. In er Praxis braucht man meist nur Vektoren im R³, 3x3 oder 4x4 Matrizen etc. und daher sind diese Dinge auch sehr Anschaulich… im Gegensatz zu den n-Dimensionalen Dingen die man aus dem Lehrbüchern kennt. ;-)

Teils verwende ich Englische Begriff wie ‚Frustum’ da es teilweise schlicht unmöglich ist vernümpftige Deutsche Begriffe für bestimmte Dinge zu finden – des weiteren sind dies allgemein bekannte Begriffe mit denen man z.B. über google auch sofort etwas finden kann.

Hier und da sind immer mal wieder Code Fragmente eingestreut um das Besprochene an einem einfachen C++ Code noch mal zusammenfassend zu präsentieren. Diese Code-Schnipsel sind wirklich nur knappe Beispiele welche die Grundidee vermitteln sollen. Komplette Vektor, Ebene und Matrizen Klassen sind schnell selbst geschrieben – und fast jeder hat bereits solche Klassen in seinem eigenen Code.

Ich verweise auch öfters auf Quellen welche eine bestimmte Thematik genauer behandeln - man muss das Rad ja nicht jedes Mal neu erfinden, also allgemein bekannte Dinge immer und immer wieder von neuem Niederschreiben. Bis jetzt hab ich jedoch noch keinen Artikel im Netz gefunden der die gängigen Anwendungsmöglichkeiten von Ebenen aufzählt, so, das man

sich alle 'Häppchen' mühevoll selbst erarbeiten und teils z.B. in Foren zusammenfragen muss - darum schrieb ich diesen Artikel damit man alles endlich mal zusammengefasst hat. :)

1 | 2 | 3 | 4 | 5 | Bilder (2) | Kommentare (4)
 
Weiterführende Links:
Kommentare:
Danke für das Tutorial,… (DarkDragon, 30.04.2006, 10:36)
Volle Punktzahl… (viz, 15.02.2005, 00:09)
Guter Artikel. Leider… (Schrompf, 07.01.2005, 19:33)
Bewertung:
selbst bewerten:
2,6
Zum Bewerten musst du registriert und angemeldet sein.