Menggambar garis dengan algoritma DDA

sebenarnya dalam menggambar garis tidak hanya menggunakan algoritma DDA (digital differential Analyzer) melainkan ada banyak sekali. dda merupakan algoritma pembentukan garis berdasarkan perhitungan dx dan dy menggunakan rumus dy=m.dx.

pembuatan garis bebas berbeda dengan garis horisontal, vertikal atau diagonal. garis bebas ini memiliki ciri yaitu terbentuk dari dua titik (P1 dan P2) dan selalu membentuk sudut kemiringan yang beragam tergantung dari ke dua titik tersebut. sudut ini menentukan kemiringan suatu garis atau disebut gradasi.

langkah pembuatanya adalah :

1. tentukan koordinat awal garis (x0, y0)
2. tentukan koordinat akhir garis (x1, y2)
3. hitung jarak mendatar kedua titik dx dan dy
dx=x1-x0 dan
dy=y1-y0
4. tentukan faktor pembagi(dicari dari yang paling panjang)
jika dx>dy
maka pembagi=dx
jika tidak pembagi=dy
5. hitung faktor penambah ke koordinat horisontal dan vertikal titik
penambah_x=dx/pembagi dan
penambah_y=dy/pembagi
6. buat perulangan dari titik ke 1 sampai panjang pembagi
for k=1 to pembagi
7. hitung koordinat titik selanjutnya
X=x+penambah_x dan
Y=y+penambah_y
8. gambar titik dengan pixxel pada koordinat (x,y)
nb: koordinat berupa integer
9. contoh code nya :

int x0,y0,x1,y1,dx,dy,step;
float x,y,x_tambah,y_tambah;

x0=100;y0=200;
x1=500;y1=100;
dx=x1-x0;dy=y1-y0;
x=float(x0);y=float(y0);
//pencarian nilai pembagi
if (dx>dy)
step=dx;
else
step=dy;
x_tambah=(float) dx/step;
y_tambah=(float) dy/step;
//perulangan titik
for (int k=0;k<step;k++){
x+=x_tambah;
y+=y_tambah;
Canvas->Pixels[int(x)][int(y)]=clRed;
}

hasil keluaranya

2 thoughts on “Menggambar garis dengan algoritma DDA

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s