Jumat, 13 Desember 2013

Grafika Komputer: Algoritma DDA untuk Garis

DDA ( Digital Differential Analyzer) adalah garis yang membentang antara 2 titik, P1 dan P2. Dimana ke-2 titik ini membentuk sudut yang besarnya sangat bervariasi. Bekerja atas dasar penambahan nilai x dan nilai y. Dimana pada garis lurus, turunan pertama dari x dan y adalah kostanta.

Langkah-langkah pembentukan menurut algoritma DDA, yaitu :


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.
Dx = x1 - x0 = 17-10 = 7
Dy = y1 - y0 = 16 -10 = 6
selanjutnya hitung dan bandingkan nilai  absolutnya.
|Dx| = 7
|Dy| = 6
karena |Dx| > |Dy|, maka step = |Dx| = 7, maka diperoleh :
x_inc = 7/7= 1
y_inc = 6/7 = 0,86




Setelah kita mengetahui teori Algoritma garis DDA langsung saja kita praktekkan ke program.
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;

    dx := x2 - x1;
    dy := y2 - y1;

    if abs(dx) > abs (dy) then fstep := abs(dx) else fstep := abs(dy);

    deltax := dx/fstep;
    deltay := dy/fstep;

    x := x1;
    y := y1;
    image1.canvas.Pixels[trunc(x),trunc(y)] := clblue;

    for f := 0 to fstep -1 do
    begin
        x := x + deltax;
        y := y + deltay;
        image1.Canvas.Pixels[trunc(x),trunc(y)] := clblue;
    end;

end;

0 komentar:

Posting Komentar

Tolong komentar yang berkaitan dengan postingan ini...