12 0 129 KB
LAPORAN KOMPUTER GRAFIK ALGORITMA DDA (DIGITAL DEFFERENTIAL ANALYZER)
DISUSUN OLEH : NAMA
: RISKI PANGESTU
NPM
: 201855201017
KELAS
:B
DOSEN
: SUSANTO,S.KOM.,MT
UNIVERSITAS MUSAMUS MERAUKE FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA 2019
A. TUJUAN Tujuan di tulisnya laporan praktikum Algoritma DDA (Digital Defferential Analyzer) yaitu : 1) Agar mahasiswa lebih memahami proses pembentukan garis dengan menggunakan algoritma DDA. 2) Mahasiswa dapat menerapkan algoritma DDA ke dalam bahasa pemograman pascal. 3) Untuk memenuhi tugas dalam mata kuliah computer grafik.
B. TEORI 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. Garis merupakan kumpulan dari titik-titik, untuk membentuk garis lurus adalah dengan mengetahui titik awal dan titik akhir. Dengan mengetahui titik awal dan titik akhir maka kita dapat membentuk garis. Untuk menggambarkan proses pembuatan garis dari titik awal ke titik akhir ada berbagai algoritma. Algoritma yang umum adalah DDA dan Bresenham. Berikut ini 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 Abs(Dx) dan Abs(Dy)
Jika Abs(Dx) > Abs(Dy) maka
Steps = Abs(Dx) bila tidak Steps = Abs(Dy)
5) Hitung penambahan koordinat pixel, yaitu:
X_increment = dx/steps, dan
Y_increment = dy/steps.
6) Koordint 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
C. PEMBAHASAN 1) Program uses wincrt; var X1, Y1, X2, Y2, Xpixel, Ypixel, Dx, Dy, Steps, n : integer; Xinc, Yinc, Xnew, Ynew : real; Begin writeln('Nama : Riski Pangestu'); writeln('NPM : 201855201017'); writeln; write('Masukan Nilai X awal : '); readln(X1); write('Masukan Nilai Y awal : '); readln(Y1); write('Masukan Nilai X akhir : '); readln(X2); write('Masukan Nilai Y akhir : '); readln(Y2); writeln; writeln('~~~~~~~~~~~~~~~~~~~~~~~~~'); 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; Begin writeln(' X awal = ',X1,'
',' Y Awal = ',Y1,'');
for n := 1 to Steps do begin Xnew := Xnew + Xinc; Ynew := Ynew + Yinc; Xpixel := round(Xnew); Ypixel := round(Ynew); writeln('Pixel ke-',n,' ',' adalah X = ',Xpixel, ' Y = ',Ypixel,''); End; End; n := n + 1; readln; End. 2) Output
Pada program pembentukan garis menggunakan algoritma DDA ini, pertama user diminta untuk memasukan Nilai X awal, Nilai Y awal, Nilai X akhir, dan Nilai Y akhir dimana nilai tersebut akan dijadikan nilai pada titik awal (x,y) dan nilai pada titik akhir (x,y). Pencarian nilai selisih antara titik awal dan titik akhir menggunakan perintah Dx := X2 - X1; dan Dy := Y2 - Y1;. Kemudian menentukan nilai steps dengan kondisi if, jika kondisi (AbsDx)>(AbsDy) bernilai benar maka steps bernilai Abs(Dx) sedangkan jika bernilai salah maka steps bernilai Abs(Dy). Selanjutnya program akan berhenti jika nilai X sesuai dengan nilai pada X akhir dan nilai Y sesuai dengan Y akhir, sesuai dengan yang diinputkan sebelumnya.
D. KESIMPULAN Algoritma DDA dapat digunakan untuk pembentukan garis sesuai dengan perhitungan Δx dan Δy. Garis dapat dibuat dengan menentukan titik awal dan titik akhir. Algoritma DDA juga meggunakan hasil bagi dari bilangan real yang kemudian di tambahkan pada titik awal dan dibulatkan, sehingga perulangan akan terus berjalan dari titik awal sampai titik akhir yang sudah diinputkan.