Algoritmo DDA: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Toobazbot (discussione | contributi)
m Inserimento automatico del portale matematica
m nuova chiave d'ordine per Categoria:Algoritmi geometrici: "DDA" usando HotCat
 
(15 versioni intermedie di 12 utenti non mostrate)
Riga 1:
{{F|computer grafica|arg2=algoritmi|marzo 2013}}
L''''algoritmo DDA''' (digital differential analyzer) è un [[algoritmo di rasterizzazione di linea]].
 
Line 16 ⟶ 17:
Un esempio di algoritmo può essere il seguente:
 
<code>
dx = x<sub>2</sub> - x<sub>1</sub>;
dy = y<sub>2</sub> - y<sub>1</sub>;
Riga 25:
disegna_il_punto(x, round(y) );
}
</code>
 
==Errori==
Per grandi pendenze l'algoritmo produce uno spargimento di punti come in figura 1.
 
[[ImmagineFile:esempio rasterizzazione linea dda 1.png|frame|center|Figura 1.]]
Come vediamo è presente un'operazione di arrotondamento (<code> round(y) </code>) e le operazioni sono eseguite in virgola mobile per via del valore m; tutti elementi costosi dal punto di vista computazionale.
 
In questo caso infatti notiamo che m ha un valore di circa 4.2 , quindi per ogni incremento sull'asse x di valore 1, sull'asse y incrementeremo di 4 pixels circa.
 
Un arcogimentoaccorgimento per correggere questo problema è quello di invertire i parametri, ovvero non ricercheremo più la y ma la x:
In questo caso infatti notiamo che m ha un valore di circa 4.2 , quindi per ogni incremento sull'asse x di valore 1, sull'asse y incrementeremo di 4 pixels circa.
Un arcogimento per correggere questo problema è quello di invertire i parametri, ovvero non ricercheremo più la y ma la x:
 
<math> x_{i+1} = x_i + \Delta x = y_i + (1/m * \Delta y) = y_i + (1/m * 1) = x_i + 1/m</math>
Line 41 ⟶ 39:
In questo caso si ottiene il risultato in figura 2:
 
[[ImmagineFile:esempio rasterizzazione linea dda 2.png|frame|center|Figura 2.]]
 
{{Portale|matematica}}
 
{{Portale|matematica}}
[[Categoria:Computer grafica]]
[[Categoria:Algoritmi geometrici|DDA]]
 
[[fr:Analyseur différentiel numérique]]
[[ru:Алгоритм DDA-линии]]