next up previous contents
Next: Spans Up: Scanline-Algorithmus Previous: Eventtable

Edges

    Aus der Eventtabelle wird eine Kantenliste generiert. Diese Liste ändert bei jedem Event. Zur Verwaltung der Kanten verwenden wir eine doppelt verkettete Liste. Wenn wir nur konvexe Polygone  zulassen, lassen sich die Kanten auf jeder Bildschirmzeile (= Scanline) zu Paaren von Kanten des gleichen Polygons ordnen. Wir sammeln alle Kanten, die zwischen zwei Scanlines entfernt werden oder neu dazukommen und speichern sie in einem Buffer. Dann werden alle Kanten zuerst entfernt und darauf die neuen eingefügt. Dies hat den Vorteil, dass die anschliessende Suche nach Pseudoevents (Überschneidungen zweier Kanten auf dem Bildschirm) keine Ausnahmen beachten muss, damit keine Events hinter dem gerade behandelten entstehen können. Schliesslich werden alle noch alleinstehenden Kanten mit ihrem Partner verknüpft. Abbildung 2.3 zeigt den Pseudocode des Erneuern der Kantenliste. Abbildung 5.16 auf Seite gif zeigt den Pseudocode unserer Implementation.

27

  figure948
Abbildung 2.3: Pseudocode des Erneuern der Kantenliste 

  figure960
Abbildung 2.4: Erneuern der Kantenliste  

   


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