Algoritmo di rasterizzazione di linea: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Aggiungo: bs:Algoritmi za crtanje linija |
m nuova chiave d'ordine per Categoria:Algoritmi geometrici: "Rasterizzazione di linea" usando HotCat |
||
(18 versioni intermedie di 14 utenti non mostrate) | |||
Riga 1:
{{F|computer grafica|arg2=algoritmi|marzo 2013}}
Un '''algoritmo di rasterizzazione di linea''' è un [[algoritmo]] grafico che si occupa di approssimare una linea o un segmento in una rappresentazione grafica discreta. Esempi di rappresentazioni grafiche discrete possono essere il monitor, composto da migliaia di [[pixel]]
In rappresentazioni non discrete, e quindi continue, questo lavoro non si presenta. Esempi di rappresentazioni grafiche continue sono gli [[Oscilloscopio#Oscilloscopio a tubo catodico|oscilloscopi a tubo catodico]].
Un esempio del problema si può vedere nella figura 0:
[[
Nello sfondo si vede una griglia,
==Un semplice algoritmo di rasterizzazione di linea==
Dati due punti p1 e p2, con coordinate (x<sub>1</sub>,y<sub>1</sub>) e (x<sub>2</sub>,y<sub>2</sub>), possiamo usare il seguente algoritmo:
dx = x2 - x1
dy = y2 - y1
Riga 18 ⟶ 19:
disegna_il_punto(x, y)
}
Nel nostro caso abbiamo semplificato l'operazione assumendo che i punti siano ordinati, ovvero che <math>x_2 > x_1</math> e <math>y_2 > y_1</math>.
L'algoritmo funziona bene con <math>dx >= dy</math> (figura 1.), ma diventa piuttosto lento nei computer, per via dei calcoli in virgola mobile.
[[
Se abbiamo <math>dx < dy</math>, i punti della linea diventano "sparsi", come mostrato in figura 2.
[[
Nel caso limite di <math>dx = 0</math> viene disegnato un solo punto.
Riga 33:
==Elenco di algoritmi di rasterizzazione di linee==
La lista non vuole essere completa:
*[[algoritmo DDA]]
*[[algoritmo della linea di Bresenham]]
*[[algoritmo della linea di Xiaolin Wu]]
==Rasterizzazione di poligono==
L''''algoritmo di rasterizzazione di poligono''' è un algoritmo di [[rasterizzazione]] che si occupa di convertire un [[poligono]] definito attraverso i suoi vertici in un
Il problema più semplice è quello di convertire un poligono vuoto, ovvero nel quale sono definiti solo i lati. In questo caso si può fare un uso ricorsivo di un algoritmo di rasterizzazione di linea, per ogni lato del poligono.
Il problema si complica nel caso di poligoni pieni. Nella figura 1 possiamo vedere alcuni esempi di poligono:
[[
In questi casi abbiamo a disposizione i seguenti algoritmi:
Riga 49:
*[[Algoritmo scan line]]
== Altri progetti ==
[[Categoria:Computer grafica]]▼
{{interprogetto}}
[[Categoria:Algoritmi geometrici]]▼
{{Portale|matematica}}
▲[[Categoria:Computer grafica]]
▲[[Categoria:Algoritmi geometrici|Rasterizzazione di linea]]
|