Kamis, 16 Desember 2010

TEORI GARIS DDA

Digital Diferensial Analyser (DDA)

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. Langkah-langkah membentuk garis menurut algoritma DDA adalah : Algoritma DDA
1. Tentukan 2 buah titik
2. Tentukan yang menjadi titik awal (X0, Y0) dan titik akhir (X1, Y1)
3. Hitung Dx dan Dy
Dx = X1 – X0 dan Dy = Y1 – Y0
4. Bandingkan absolut (Dx) dan absolut (Dy)
Jika absolute (Dx) > absolut (Dy), maka
Steps = absolute (Dx) , bila tidak, steps = absolut (Dy)
5. Hitung penambahan koordinat pixel, yaitu:

6. Koordinat selanjutnya yaitu:
X + X_increment
Y + Y_increment
7. Posisi pixel ditentukan dengan pembulatan nilai koordinat tersebut
8. Ulangi langkah 6 dan 7 untuk posisi selanjutnya sampai X = X1, Y= Y1

PROGRAM GARIS PADA PASCAL

uses crt, graph;
var driver,mode:integer;
x1,y1,x2,y2:integer;
step,k:integer;
dx,dy:real;
xm,ym,x,y:real;
procedure utama;
begin
clrscr;
driver:=detect;
InitGraph(driver,mode,'');
end;
procedure Input;
begin
writeln('Program Menggambar Garis Dengan Algoritma DDA');
writeln('<<=========================================>>');
writeln;
write('Masukkan Nilai x1: ');
readln(x1);
write('Masukkan Nilai y1: ');
readln(y1);
write('Masukkan Nilai x2: ');
readln(x2);
write('Masukkan Nilai y2: ');
readln(y2);     

end;
procedure Garis_DDA;
begin
dx:=x2-x1;
dy:=y2-y1;
x:=x1;
y:=y1;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));
xm:=dx/step;
ym:=dy/step;
putPixel(round(x),round(y),white);
for k:=1 to step do
begin
x:=x+xm;
y:=y+ym;
putPixel(round(x),round(y),white);
end;
end;
begin
input;
utama;
Garis_DDA;
readln;
end.

                                                  

Tidak ada komentar:

Posting Komentar