Documents - Tips tgs-01
Documents - Tips tgs-01
2013
Nama : Agus Setiawan
[100403020003]
Vicky Yanuwar Wiryawan
[100403020021]
Fakultas : Teknologi Informasi
Jurusan : Sistem Informasi
Mapel : Grafika Komputer
1. Algoritma DDA
Algoritma DDA bekerja bekerja atas dasar penambahan nilai x dan nilai y.
Pada garis lurus, turunan pertama dari x dan y adalah konstanta. Sehingga untuk
memperoleh suatu tampilan dengan ketelitian tinggi, suatu garis dapat
dibangkitkan dengan menambah nilai x dan y masing-masing sebesar ex dan
ey, dengan besaran dengan nilai yang sangat kecil. Kondisi ideal ini sukar
dicapai, karenanya pendekatan yang mungkin dilakukan adalah berdasarkan
piksel-piksel yang bisa dialamati/dicapai atau melalui penambahan atau
pengurangan nilai x dan y dengan suatu besaran dan membulatkannya ke nilai
integer terdekat.
Langkah-langkah
1. Tentukan 2 buah titik.
2. Tentukan yang menjadi titik awal (X0,Y0) dan titik akhir (X1,Y1).
4. Bandingkan Abs(Dx) dan Abs(Dy). Jika Abs(Dx) > Abs(Dy) maka Steps =
Abs(Dx) bila tidak Steps = Abs(Dy)
2. Tentukan salah satu titik disebelah kiri sebagai titik awal, yaitu (X0, Y0) dan
titik lainnya sebagai titik akhir (X1, Y1).
5. Untuk setiap e>=0 hitung e=e+d2 dan y=y+1 Jika tidak hitung e=e+d1
dan y=y
6. Hitung x=x+1
2. Tentukan salah satu titik disebelah kiri sebagai titik awal, yaitu (X0, Y0) dan
titik lainnya sebagai titik akhir (X1, Y1)
5. Untuk setiap e>=0 hitung e=e+d2 dan x=x+1 Jika tidak hitung e=e+d1
dan x=x
s:='Kuadran I';
if (x1 > x2 ) and (y1 < y2) then //test apakah garis ini berada di
kuadran 2
begin
s:='Kuadran II';
signx:=-1;
signy:=1;
end
else if (x1 > x2 ) and (y1 > y2) then //test apakah garis ini ada di
kuadran 3
begin
s:='Kuadran III';
swap(x1,x2);
swap(y1,y2);
signx:=-1;
signy:=-1;
end
if signx = 1 then
signx_s:='+'
else
signx_s:='-';
if signy = 1 then
signy_s:='+'
else
signy_s:='-';
x:= x1;
y:= y1;
dx := abs (x2 - x1);
dy := abs (y2 - y1);
if dx > dy then
begin
d1:=2 * dy;
d2:=2 * (dy - dx);
e := 2* dy - dx;
stop:=dx;
end
else
begin
d1:=2 *dx;
d2:=2 *(dx-dy);
e := d1 - dy;
stop:=dy;
end;
i:=1;
finish:=false;
while not Finish do
begin
if grid then
PutPixelGrid(round(x),round(y))
else
PutPixel (round(x),round(y),clRED);
if dx > dy then //cenderung mendatar
begin
if e < 0 then
begin
e := e + (2 * dy);
end
else
begin
end;
3. Algoritma Midpoint
Algoritma Lingkaran Midpoint juga disebut algoritma lingkaran Bressenham.
Bressenham mengembangkan generator lingkaran yang cukup efisien. Algoritma
yang digunakan membentuk semua titik berdasarkan titik pusat dengan
//jika ingin menggambar penuh maka ubah titik ke kuadran ii, iii,
dan iv
if LingkaranPenuhCheck.Checked then
begin
x:=xcenter-xi;
y:=ycenter-yi; //kuadran 2
Canvas.Pixels[x,y]:=clred;
x:=xcenter-xi;
y:=ycenter+yi; //kuadran 3
Canvas.Pixels[x,y]:=clred;
x:=xcenter+xi;
y:=ycenter+yi; //kuadran 4
Canvas.Pixels[x,y]:=clred;
end;
end;