Langsung ke konten utama

Algoritma Pembentukan Bangun Geometri

Umumnya persamaan garis lurus pada koordinat kartesius diwujudkan dalam
persamaan garis : y=m.x+b. Jika dimisalkan pada dua titik(x0,y0 dan x1,y1) akan
dibuat sebuah garis lurus, kita dapat menentukan nilai “m’ dan “b” dengan
persamaan berikut:
m= y1-y0 / x1-x0
b=y1 – m.x1
Algoritma untuk menggambar garis pada komputer didasarkan pada dua
persamaan di atas. dimana m adalah gradien atau kemiringan garis tersebut.

1.Algoritma DDA
             Algoritma digital differential analyzer(DDA), Prinsip algoritma ini adalah mengambil
nilai integer terdekat dengan jalur garis berdasarkan atas sebuah titik yang telah
ditentukan sebelumnya(titik awal garis).
Algoritma pembentukan garis DDA:
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2. Tentukan salah satu titik sebagai awal(x_awal,y_awal) dan titik
     akhir(x_akhir,y_akhir).
3. Hitung Dx=x_akhir – x_awal, dan Dy= y_akhir – y_awal.
4. Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan
     nilai x maupun nilai y, dengan cara:
5. Bila nilai absolut dari Dx lebih besar dari absolut Dy, maka langkah= absolut
     dari Dx.
6. Bila tidak maka langkah= absolut dari Dy
7. Hitung penambahan koordinat pixel yaitu x_increment=Dx/langkah,dan y_increment=Dy/langkah
8. Koordinat selanjutnya (x_awal+x_increment, y_awal+y_increment)
9. Gambar pixel di (x_awal, y_awal)
10. Ulangi nomor 8 dan 9 sampai x=x_akhir dan y=y_akhir.



Untuk lebih jelasnya bisa dilihat pada contoh program disini


2.Algoritma Bressenham

       Tidak seperti Algoritma DDA, Algoritma Bressenham tidak membulatkan nilai posisi
pixel setiap waktu. Algoritma Bressenham hanya menggunakan penambahan nilai
integer yang juga dapat diadaptasi untuk menggambar lingkaran.
Berikut ini langkah langkah untuk membentuk garis menurut algoritma Bressenham:
1. Tentukan dua titik yang akan dihubungkan
2. Tentukan salah satu titik sebagai titik awal yaitu (x_awal,y_awal) dan titik
     lainnya sebagai titik akhir(x_akhir,y_akhir).
3. Hitung Dx = x_akhir-x_awal, Dy = y_akhir – y_awal.
4. Hitung parameter = (2Dy) – Dx
5. Jika parameter kurang dari 0, maka parameter = parameter + (2 * Dy).
6. Jika tidak maka y_awal = y_awal +1 dan parameter = parameter + (2 * Dy) –(2 * Dx).
7. Gambar pixel di (x_awal, y_awal)
8. x= x+1
9. Ulangi langkah nomor 5-8 sampai x_awal = x_akhir.

untuk implementasinya bisa di lihat di sini

3.Algoritma Mid Point

Pada algoritma ini pembuatan lingkaran dilakukan dengan menentukan satu titik
awal. Bila titik awal pada lingkaran(x,y) maka terdapat tiga posisi lain, sehingga
dapat diperoleh delapan titik. Dengan demikian sebenarnya hanya diperlukan untuk
menghitung segmen 45’ dalama menentukan lingkaran selengkapnya.
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
penambahan semua jalur sekeliling lingkaran. Algoritma ini diturunkan dari algoritma
Midpoint untuk pembentukan garis. Dalam hal ini hanya diperhatikan bagian 45’ dari
suatu lingkaran dan menggunakan CirclePoints untuk menampilkan titik dari seluruh
lingkaran.
Langkah langkah untuk membentuk lingkaran algoritma Midpoint:
1. Tentukan jari-jari dengan titk pusat lingkaran(x_pusat,y_pusat) kemudian diperoleh (x,y)=(0,r)
2. Hitung nilai dari parameter = p = 1-r
3. Gambar pixel pada delapan titik utama, yaitu :
    (x_pusat + x, y_pusat+y)
    (x_pusat – x, y_pusat+y)
    (x_pusat + x, y_pusat-y)
    (x_pusat – x, y_pusat-y)
    (x_pusat + y, y_pusat+x)
    (x_pusat – y, y_pusat+x)
    (x_pusat + y, y_pusat-x)
    (x_pusat – y, y_pusat-x)
    kemudian x = x+1
4. Jika p<0 maka p = p + ( 2x ) + 6
5. Jika tidak maka y = y-1 dan p = p + 2 * ( x-y ) +1
6. Ulangi No. 3 – 5 sampai x = y
Elips merupakan modifikasi dari bentuk lingkaran, dengan memasukkan mayor dan
minor axis pada prosedur lingkaran. Elips ditentukan oleh satu set titik dengan
memperhitungkan jumlah jarak dari kedua posisi.

sekian dulu ya...kita jumpa lagi di lain kesempatan.Daaaaaahhhhhh.....

Komentar

Postingan populer dari blog ini

Contoh Perhitungan Algoritma Perceptron

      Melanjutkan tulisan saya sebelumnya tentang algoritma perceptron,kali ini saya akan menulis tentang conto perhitungan manual algoritma perceptron. Untuk contoh kasusnya saya menggunakan data logika AND. Cekidot.... Algoritma      Data yang kita gunakan sebagai contoh adalah data logika AND sebagai berikut: x1 x2 target 0 0 0 0 1 0 1 0 0 1 1 1       tentukan bobot awal secara acak, saya pakai contoh w1 = 0,w2 =0, learning rate = 1, bias = 0,maksimal epoh = 10. Disini saya memakai fungsi aktivasi undak biner. Epoh ke 1 Data ke satu x = {0,0}, bobot w = {0,0},b=0,target = 0 y_in = (x1*w1)+(x2*w2)+b = (0*0)+(0*0)+0 = 0 y = sign(0) = 1 karena y != target maka hitung error dan update bobot  error = target - y = 0 - 1 = -1 w1_baru = w1_lama +(learning_rate*error*x1)                = 0 + (1*(-1)*0) = 0 w2_baru = w2_lama +(learning_rate*error*x2)                = 0+(1*(-1)*0) = 0

Contoh Perhitungan Algoritma Learning Vector Quantization

Melanjutkan tulisan saya tentang algoritma Learning Vector Quantization yang lalu, kali ini saya akan melanjutkan dengan contoh perhitungan manual. Berikut ini contoh data yang akan kita hitung. No X1 X2 X3 X4 target 1 0 1 1 0 0 2 0 0 1 1 1 3 1 1 1 1 0 4 1 0 0 1 1 pada contoh di atas, saya menggunakan 4 data sebagai data training beserta target yang bertujuan untuk mendapatkan bobot yang akan digunakan pada proses klasifikasi. Bobot awal adalah { 1, 1, 1, 0} dan { 1, 0, 1, 1} dengan learning rate 0,05 dengan fungsi pembelajaran = 0,1. Pelatihan Iterasi ke 1 1. Data ke 1 { 0, 1, 1, 0} dengan target 0, bobot = {{ 1, 1, 1, 0},{ 1, 0, 1, 1}}      - menghitung bobot untuk masing masing output :          kelas 0 = sqrt(((0-1)^2)+((1-1)^2)+((1-1)^2)+((0-0)^2)) = 1         kelas 1 = sqrt(((0-1)^2)+((1-0)^2)+((1-

Pemrograman Berorientasi Object - Overloading dan Overriding

       Function atau method overloading dan override adalah fitur yang sangat mendasar dan berguna dari bahasa OOP manapun. Dalam tutorial ini kita akan membahas implementasi metode overloading dan override di php. Di sini pertama kita akan membahas dasar-dasar overloading dan override. Setelah eksplorasi dasar kita akan menerapkan overloading dan override di php. Sebelum melangkah lebih jauh, saya mengasumsikan bahwa Anda memiliki pengetahuan dasar tentang class dan pewarisan di php. Anda juga memiliki pemahaman tentang magic method di php. Magic method karena overloading di php bisa di implmentasikan dengan menggunakan magic method. Overriding        Arti dasar dari overriding di OOP sama dengan arti kata sebenarnya. Dalam arti kata sebenarnya dari overriding adalah menggantikan perilaku orang tua yang sama pada anak. Ini sama dengan override method di OOP. Dalam arti OOP, override adalah mengganti method class induk di class anak. Atau dengan method kata kunci sederhana yang me