next up previous contents
Next: Getview Up: Präprozessing Previous: Präprozessing

 

preprocess

 

Der Preprozessor berechnet Daten, welche während dem Programmablauf immer wieder gebraucht werden, jedoch nur einmal berechnet werden müssen.
Normalenvektor und Schwerpunkt werden im Weltsystem berechnet, da sie schneller transformiert werden als jedesmal im Beobachtersystem neu berechnet.

normal_vectors_of_polygons

 

tabular2870

Die Funktion normal_vectors_of_polygons berechnet im Weltsystem aus den Polygoneckpunkten den normierten Normalenvektor. Ein Polygon besitzt eine obere Seite (Aussenseite der geschlossenen Figur) und eine untere Seite (Innenseite der geschlossenen Figur). Bei einem von oben betrachteten Polygon sind die Eckpunkte jeweils im Gegenuhrzeigersinn angeordnet; der Normalenvektor ist nach oben definiert gerichtet. Abbildung 5.6 auf Seite gif zeigt den Pseudocode der Funktion.

27

  figure2916
Abbildung 5.6: Pseudocode der Funktion normal_vectors_of_polygons  

 

focal_points_of_polygons

 

tabular2948

Die Funktion focal_points_of_polygons berechnet im Weltsystem aus den Polygoneckpunkten den Schwerpunkt. Abbildung 5.7 auf Seite gif zeigt den Pseudocode der Funktion.

27

  figure2960
Abbildung 5.7: Pseudocode der Funktion focal_points_of_polygons  

 

max_radius

   

tabular2972

Die Funktion max_radius berechnet für jedes Polygon eine Kugel mit Schwerpunkt als Mittelpunkt und dem Radius wobei sich alle Polygoneckpunkte innerhalb der Kugel befinden. Der Radius entspricht somit der maximalen Distanz alle Eckpunkte zum Schwerpunkt. Dieser Radius wird von der Funktion clip als schnelles Kriterium benützt, um Polygone zu klippen, welche ausserhalb des Bildschirmbereiches liegen. Der Vorteil dieser Kugel ist, dass nur auf einen Punkt (Polygonschwerpunkt = Mittelpunkt der Kugel) getestet werden muss. Abbildung 5.8 zeigt den Pseudocode der Funktion.

27

  figure2981
Abbildung 5.8: Pseudocode der Funktion max_radius  

     



Martin Frey
Tue Jun 17 13:29:20 MET DST 1997