Minggu, 10 Oktober 2010

Algoritma DDA (Digital Defferential Analyzer)






DDA atau Digital Diferential Analyzer adalah scan conversion algorithm yang didasari oleh perhitungan berikut :
 Δy = m . Δ x 
  Δx = Δy / m 


Algoritma DDA

  • Jika 0<m<1  maka     yk+1 = yk + m
                                         xk+1 = xk + 1
  • Jika m>1  maka        xk+1 = xk + 1/m
                              yk+1 = yk + 1



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 eΔx dan eΔy, 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 membuat garis dengan DDA :

  1. Tentukan 2 buah titik.
  2. Tentukan yang menjadi titik awal (X0,Y0) dan titik akhir (X1,Y1).
  3. Hitung Dx dan DyDx = X1-Xdan Dy = Y1 – Y0
  4. Bandingkan Abs(Dx) dan Abs(Dy)Jika Abs(Dx) > Abs(Dy) makaSteps = Abs(Dx) bila tidak Steps = Abs(Dy)
  5. Hitung penambahan koordinat pixel, yaitu:X_increment = dx/steps, danY_increment = dy/steps.
  6. Koordint selanjutnya, yaituX+X_incrementY+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



Carta alir bagi algoritma DDA


Contoh dan penyelesaian penentuan titik dengan Algoritma DDA

1. Inputkan 
2 titik yaitu (2,6) dan (10,2). Mula-mula cari nilai kecerunan garis tersebut.







2. Kemudian, lihat sama ada garis tersebut x1 < x 2 yang dilukis dari kiri ke kanan atau x1 > x 2 yang di lukis dari kana ke kiri. Nilai kecerunan tadi juga di rujuk.


     Berdasarkan titik yang diberi, kiraanya adalah seperti berikut :

     
     sebagai contoh :

     




















Langkah seperti gambar di atas diulang sebanyak 
Δx kali dan hasilnya seperti di bawah ini :












Sumber :





Tidak ada komentar:

Poskan Komentar