Share to: share facebook share twitter share wa share telegram print page

 

Algoritmo DDA

L'algoritmo DDA (digital differential analyzer) è un algoritmo di rasterizzazione di linea.

L'algoritmo DDA parte dall'osservazione che la pendenza di una retta passante per i punti e è esprimibile come:

e che

Da qui possiamo ricavare che per passare da un punto ad un punto dove , l'aumento di rispetto a dovrà essere ovvero:

Algoritmo

Un esempio di algoritmo può essere il seguente:

dx = x2 - x1;
dy = y2 - y1;
m  = dy / dx;
y = y1;
for x from x1 to x2 {
	y = y + m;
	disegna_il_punto(x, round(y) );
}

Errori

Per grandi pendenze l'algoritmo produce uno spargimento di punti come in figura 1.

Figura 1.

Come vediamo è presente un'operazione di arrotondamento ( round(y) ) 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 accorgimento per correggere questo problema è quello di invertire i parametri, ovvero non ricercheremo più la y ma la x:

In questo caso si ottiene il risultato in figura 2:

Figura 2.
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica

Information related to Algoritmo DDA

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya