DDA adalah
algoritma pembentukan garis berdasarkan perhitungan x dan y, menggunakan rumus
y = m. x. Garis dibuat dengan menentukan dua endpoint yaitu titik awal dan
titik akhir. Setiap koordinat titik yang membentuk garis diperoleh dari
perhitungan, kemudian dikonversikan menjadi nilai integer. Langkah-langkah
pembentukan menurut algoritma DDA, yaitu :
1.
Tentukan dua titik yang akan dihubungkan.
2.
Tentukan salah satu titik sebagai titik awal (x0, y0) dan titik akhir (x1, y1).
3.
Hitung deltax = x1 - x0 dan deltay = y1 - y0.
4.
Tentukan step, yaitu jarak maksimum jumlah penambahan nilai x maupun nilai y
dengan cara :
bila
nilai |deltay| > |deltax| maka step = nilai |deltay|.
bila
tidak maka step = |deltax|.
5.
Hitung penambahan koordinat pixel yaitu x_increment = deltax / step dan
y_increment = deltay / step.
6.
Koordinat selanjutnya (x+x_incerement, y+y_increment).
7.
Posisi pixel pada layer ditentukan dengan pembulatan nilai koordinasi tersebut.
Contoh : Untuk
menggambarkan algoritma DDA dalam pembentukan suatu garis yang menghubungkan
titik (10,10) dan (17,16), pertama-tama ditentukan dx dan dy, kemudian dicari
step untuk mendapatkan x_increment dan y_increment.
deltax = x1 - x0 = 17-10 = 7
deltay = y1 - y0 = 16 -10 = 6
selanjutnya hitung dan bandingkan nilai absolutnya.
|deltax| = 7
|deltay| = 6
karena |deltax| > |deltay|, maka step = |deltax|
= 7, maka diperoleh :
x_inc = 7/7=
1
Buka Delphi anda dan tambahkan 1 buah komponen button ke form. Klik 2x pada
komponen button dan tuliskan listing dibawah ini:
procedure TForm1.Button3Click(Sender: TObject);
var dx,dy,fstep,f,x1,x2,y1,y2 : integer;
deltax,deltay,x,y : real;
begin
x1 := 100;
y1 := 150;
x2 := 300;
y2 := 250;
dy := y2 - y1;
if abs(dx) > abs (dy) then
fstep := abs(dx)
else
deltax := dx/fstep;
deltay := dy/fstep;
x := x1;
y := y1;
image1.canvas.Pixels[trunc(x),trunc(y)] := clgreen;
for f := 0 to fstep -1 do
begin
x := x + deltax;
y := y + deltay;
image1.Canvas.Pixels[trunc(x),trunc(y)]
:= clgreen;
end;
end;
0 komentar:
Posting Komentar