Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Algoritmo scan line - Teknopedia
Algoritmo scan line - Teknopedia
Questa voce è da wikificare
Questa voce o sezione sull'argomento geometria non è ancora formattata secondo gli standard.

Contribuisci a migliorarla secondo le convenzioni di Teknopedia. Segui i suggerimenti del progetto di riferimento.
Esempio di Algoritmo scan-line

Scan Line è un algoritmo per la rasterizzazione efficiente di poligoni.

Dato un poligono, espresso sotto forma di segmenti (xmin,ymin,xmax,Ymax) , è possibile determinare i punti interni del poligono tracciando delle linee parallele all'asse x e calcolando le intersezioni con i segmenti del poligono. Ogni volta che una linea di scansione interseca un segmento del poligono, possiamo considerare i punti successivi, fino alla prossima intersezione, come interni. Tali gruppi di punti sono chiamati span, e rappresentano i pixel da colorare all'interno dell'immagine.

I passi del processo per determinare gli span sono tre:

  1. Determinare le intersezioni tra la scan-line e i poligoni
  2. Ordinare tali intersezioni secondo l'asse x
  3. Determinare i punti interni sfruttando le intersezioni sulla linea calcolate precedentemente

L'algoritmo

[modifica | modifica wikitesto]

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 (ymax - ymin) righe e contiene, ad ogni riga, una lista di segmenti che hanno come ymin il valore y della scan-line. Un segmento all'interno della lista è rappresentato con la coordinata ymax del segmento (l'estremo con y più grande), la coordinata xmin del segmento e l'inverso della pendenza.

Ora siamo pronti a determinare gli span per ogni scan-line: Si inizializza un'altra lista vuota, chiamata AET (Active Edge Table) per rappresentare gli spigoli attivi ad ogni scan-line.

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.

Una nota la merita la scelta dell'arrotondamento dei punti da considerare come interni: nella AET i punti x, ottenuti come somma di xmin con l'inverso della pendenza, non assumeranno valori interi. Per applicare la regola even-odd, dunque, è necessario arrotondare i punti x delle intersezioni della scan-line con i segmenti del poligono. In particolare, se si passa da punti interni ad esterni, si arrotonda la coordinata x del punto all'intero più grande, mentre se si passa da punti interni a punti esterni, si arrotonda all'intero più piccolo.

La colorazione prosegue finché ET è vuota

Collegamenti esterni

[modifica | modifica wikitesto]
  • Giuseppe Attardi e Anna Bernasconi, Fondamenti di computer graphics | Capitolo 4, su medialab.di.unipi.it. URL consultato il 19 giugno 2025 (archiviato il 4 dicembre 2024).
  Portale Matematica: accedi alle voci di Teknopedia che trattano di matematica
Estratto da "https://it.wikipedia.org/w/index.php?title=Algoritmo_scan_line&oldid=145516277"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022