Anda di halaman 1dari 5

LAPORAN PRAKTIKUM 1

KOMPUTER GRAFIK

Dosen Pengampu:

Susanto, S.Kom., M.T.

Disusun oleh:

Yoga Putra Pratama

201955201007

Kelas A

UNIVERSITAS MUSAMUS

FAKULTAS TEKNIK

JURUSAN TEKNIK INFORMATIKA

2020
PENDAHULUAN

Modul : Algoritma DDA (Digital Differential Analyzer) menggunakan Dev-Pascal.

Tujuan : Mahasiswa dapat membuat program menggunakan Algoritma DDA pada Dev-
Pascal.

Teori : Algoritma DDA adalah algoritma pembentuk garis berdasarkan perhitungan dx


maupun dy. Semua koordinat titik yang membentuk garis diperoleh dari perhitungan
kemudian dikonversikan menjadi nilai integer.

Langkah-langkah 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 Abs(Dx) dan Abs(Dy)
Jika Abs(Dx) > Abs(Dy)
Steps = Abs(Dx) bila tidak Steps = Abs(Dy)
5. Hitung penambahan koordinat pixel, yaitu:
X_increment = dx/steps, dan
Y_increment = dy/steps.
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
PEMBAHASAN

Contoh Soal :

Titik A(0, 7) dan B(10, 12).

Jawab :

1. Tentukan titik awal dan titik akhir

Titik awal = A(0, 7)

Titik akhir = B(10, 12)


2. Tentukan nilai Dx dan Dy
Dx = X1 – X0
= 10 – 0 = 10
Dy = Y1 – Y0
= 12 – 7 = 5
3. Bandingkan Abs(Dx) dan Abs(Dy)
Abs(Dx) = Abs(10) = 10
Abs(Dy) = Abs(5) = 5
Abs(Dx) > Abs(Dy) maka Step = Abs(Dx) = 10
4. Tentukan penambahan pixel
Xinc = Dx / Step
10 / 10 = 1
Yinc = Dy / Step
5 / 10 = 0,5

Source Code :
program algoritmaDDA;
uses crt;
var
X1, Y1, X2, Y2, Xpixel, Ypixel, Dx, Dy, Steps, n : Integer;
Xinc, Yinc, Xnew, Ynew : real;
begin
Write('Masukkan Nilai X Awal : '); Readln(X1);
Write('Masukkan Nilai Y Awal : '); Readln(Y1);
Write('Masukkan Nilai X Akhir : '); Readln(X2);
Write('Masukkan Nilai X Akhir : '); Readln(Y2);
Dx:= X2 - X1;
Dy:= Y2 - Y1;
If Abs(Dx) > Abs(Dy) Then
Steps := Abs(Dx)
Else
Steps := Abs(Dy);
Xinc := dx / Steps;
Yinc := dy / Steps;
Xnew := X1;
Ynew := Y1;

For n := 1 to Steps Do
begin
Xnew := Xnew + Xinc;
Ynew := Ynew + Yinc;
Xpixel := trunc(Xnew);
Ypixel := trunc(Ynew);
writeln('n : ', n, ' Xn + ', Xinc:2:2, ' = ', Xnew:2:2, ' Yn + ', Yinc:2:2, ' = ', Ynew:2:2, ' Pixel X
= ', Xpixel, ' Pixel Y = ', Ypixel);
end;
readln();
end.
LAMPIRAN

Source Code:

Output :

Anda mungkin juga menyukai