Algoritmo scan line: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
|||
Riga 8:
# Determinare i punti interni sfruttando le intersezioni sulla linea calcolate precedentemente
== L'
Prima di iniziare, dobbiamo creare una tabella per salvare i punti di intersezione tra i segmenti del poligono. Tale tabella è chiamata ET (Edge Table), è formata da (y<sub>max</sub> - y<sub>min</sub>) righe e contiene, ad ogni riga, una lista di segmenti che hanno come y<sub>min</sub> il valore y della scan-line. Un segmento all'interno della lista è rappresentato con la coordinata y<sub>max</sub> del segmento (l'estremo con y più grande), la coordinata x<sub>min</sub> del segmento e l'inverso della pendenza.
Riga 14:
Partendo dalla prima riga della lista ET, si aggiunge alla AET tale riga, calcolando gli span tramite la regola even-odd. La regola consiste in suddividere i punti della scan-line in interni ed esterni: all'inizio i punti sono esterni e, ad ogni intersezione con i lati del poligono, cambiano in interni (o viceversa, cambiando da interni a esterni). Non vanno considerati nella regola i lati parallele alla scan-line, ne il vertice più piccolo o più grande del poligono rispetto alla coordinata y.
Successivamente si aggiorna la tabella AET sommando l'inverso della pendenza alla coordinata x del segmento, per ottenere la giusta posizione x per la scan-line successiva.
|