A. DEFINISI ALGORITMA DDAAlgoritma DDA (Digital Differential Analyzer) adalah algoritma pembentukan garis berdasarkan perhitungan dx maupun dy, menggunakan rumus dy = m . dx. Garis dibuat menggunakan dua endpoint, yaitu titik awal dan titik akhir. Setiap koordinat titik yang membentuk garis diperoleh dari perhitungan, kemudian dikonversikan menjadi nilai integer.
B. KONSEP ALGORITMA DDA1. Tentukan dua titik yang akan dihubungkan
2. Tentukan yang akan menjadi titik awal (x0,y0) dan titik akhir (x1,y1)
3. Hitung
4. Tentukan step, yaitu jarak maksimum jumlah pertambahan nilai x dan nilai y
- jika nilai dx > dy maka step = dx
- jika nilai dx < dy maka step = dy
5. Hitung penambahan koordinat pixel dengan cara
- x.tambah = dx / step
- y.tambah = dy / step
6. Tentuan koordinat bentuknya xi+1 = yi+1 dengan koordinat (x+x.tambah, y+y.tambah)
7. Luas pixel ditentukan dengan pembulatan nilai tersebut
8. Ulangi langkah 6 dan 7 sampai x = x1 dan y = y1
C. FLOWCHART ALGORITMA DDAD. COTOH PROGRAM DENGAN ALGORITMA DDACoding menggunakan MATLAB
function draw(x0,y0,x1,y1)
clc
clear
point = input('Give coord[ x0 y0 x1 y1]; ');
x0 = point(1); y0 = point(2); x1 = point(3); y1 = point(4);
dx = abs(x1-x0);
dy = abs(y1-y0);
sx = sign(x1-x0)
sy = sign(y1-y0);
if (dy > dx)
step = dy;
else
step = dx;
end
x(1)=x0; y(1)=y0; j=1;
for i=0:step
if (x1 == x)&(y1 ==y)
break;
end
j=j+1;
x(j)=x(j-1) + (dx/step)*sx;
y(j)=y(j-1) + (dy/step)*sy;
end
plot(round(x), round(y), 'rs');
grid on, hold on
plot(x,y,'b^');
axis([point(1)-2 point(3)+2 point(2)-2 point(4)+2]);
legend('DDA Points','Actual Points',2);
title('Digital Differential Line Drawing Algorithm')
Hasil :
E. PEMBAHASANDari hasil “Contoh Program dengan Algoritma DDA” diatas kita bisa mengetahui titik-titik dari hasil titik yang telah dibuat, yaitu x0 = 10, y0 = 10, x1 = 17, y1 = 16. Dan hasil dari titik-titik yang bisa dijadikan garis sama dengan yang saya kerjakan secara manual malalui konsep algoritma DDA yang pada saat pembelajaran nilai titik awal dan akhirnya serupa. Dengan menggunakan codingan dan bantuan dari software bisa memudahkan dalam membuat suatu garis yang nantinya bisa dijadikan bangun ruang dan berlanjut ke polygon.
Jika ada yang kurang tepat silahkan dikoreksi. Semoga bermanfaat.