Laporan Algoritma DDA [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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.