Bentuk Geometri
Lingkaran Lingkaran merupakan kumpulan titik yang berjarak sama terhadap
titik pusat (x,y) Rumus dasar lingkaran: (X-Xc)2+(Y-Yc)2=r2
Lingkaran Dari rumus lingkaran dapat dibentuk persamaan untuk
menghitung titik yg melalui jalur lingkaran
Kekurangannya: - Komputasi cukup rumit - jarak antara titik tidak sama Setengah lingkaran yang dibentuk oleh persamaan diatas dengan (Xc,Yc)=0,0
Algoritma pembentuk lingkaran A. Algoritma titik simetris: Algoritma ini didasarkan pada sifat lingkaran yang simetris (Y ,-X)
(-X, Y)
(X, Y) (X = Xc + r cos θ) (Y= Yc + r sin θ )
(Y, X)
Algoritma Pembentuk Lingkaran B.
Algoritma Lingkaran Midpoint Algoritma Lingkaran Midpoint disebut juga Algoritma lingkaran bresenham algoritma ini membentuk semua titik berdasarkan titik pusat dengan penambahan semua jalur sekeliling lingkaran . algoritma ini hanya memperhatikan bagian 45 derajat dari suatu lingkaran yaitu oktan kedua dari lingkaran mulai dari x=0 sampai x=R/√2
Midpoint antara 2 kandidat pixel pada posisi xk+1 di jalur lingkaran
Algoritma Pembentuk Lingkaran Langkah langkah untuk membentuk lingkaran algoritma Circle Midpoint:
1.Tentukan radius r dengan titik pusat lingkaran(xc,yc) kemudian diperoleh (x0,y0)=(0,r) 2.Hitung nilai dari parameter P0=5/4 - r 3.Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut: Bila Pk< 0, maka titik selanjutnya adalah (xk+1,yk)dan Pk+1=Pk+2xk+1+1 Bila tidak, maka selanjutnya adalah(xk+1,yk-1), dan Pk+1= Pk+2xk+1 +1 -2yk-1 Dimana 2xk+1=2xk+2 dan 2yk+1=2yk - 2 4.Tentukan titik simetris pada ketujuh oktan yang lain 5. Gerakkan setiap posisi pixel(x,y) pada garis melingkar dari lingkaran dengan titik pusat (Xc,Yc) dan tentukan nilai koordinat x=x+xc, y=y+yc 6. Ulangi langkah 3 sampai 5 , sehingga x=y
Algoritma pembentuk lingkaran Sebuah lingkaran ber jari-jari r=10 digambar dengan algoritma midpoint dengan
menentukan posisi pixel pada octan pertama di quadran pertama dari x=0 sampai x=y
Tentukan nilai awal: P0= 1-r = -9 Bila lingkaran digambar dari titik pusat (0,0) maka (x0,y0)=(0,10) 2x0=0 , 2y0=20
k
pk
(Xk+1,yk-1)
2xk+1
2yk-1
0
-9
(1,10)
2
20
1
-6
(2,10)
4
20
2
-1
(3,10)
6
20
3
6
(4,9)
8
18
4
-3
(5,9)
10
18
5
8
(6,8)
12
16
6
5
(7,7)
14
14
Algoritma Pembentuk Ellips Ellips merupakan bentuk modifikasi dari lingkaran, dengan penambahan pada mayor axis dan minor axis. Ellips merupakan kumpulan titik-titik yang jumlah jaraknya sama antara 2 titik konstan (fosi) ke setiap titik pada bidang ellips Jika jarak ke kedua fosi dari sembarang titik p(x,y) pada ellips dilambangkan dengan d1 dan d2,maka persamaan umum ellips: d1+d2=konstan ( x − x1) 2 + ( y − y1) 2 + ( x − x 2) 2 + ( y − y 2) 2 = constant
Algoritma Pembentuk Ellips Algoritma Midpoint Menggunakan pendekatan yang mirip dengan pembentukan lingkaran dengan midpoint Untuk ellips standar digunakan parameter yaitu rx,ry dan (xc,yc) Metode midpoint diajalankan pada kuadran pertama dalam dua bagian yaitu dari posisi (0,ry) dan step searah jarum jam sepanjang jalur ellips pada kuadran pertama, bila kemiringan <1 penambahan pada sumbu x dan bila kemiringan >1 penambahan pada sumbu y Bagian kedua dari posisi (rx,0) dan step berlawanan arah jarum jam , pergeseran unit step y ke x bila kemiringan lebih besar dari -1
Ellips dengan titik pusat xc,yc Dengan semimajor axis rx dan semiminor axis ry
Langkah – langkah algoritma ellips midpoint;
1.Tentukan rx,ry dan pusat elips (xc,yc) kemudian diperoleh (xo,yo)=(0,ry) 2.Hitung nilai parameter P10=ry2rx2 ry+1/4 rx2 3.Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut : Bila p1k< 0 maka titik selanjutnya adalah (xk+1, yk) p1k+1=p1k+2ry2xk+1+ry2 Bila tidak, maka titik selanjutnya adalah (xk+!,yk1) dan p1k+1=p1k+2ry2xk+12rx yk+1ry2 dengan 2ry2xk+1=2ry2xk +2ry2 Dan 2rx yk+12rx2 yk +2rx2 Teruskan sampai 2ry2x >= 2rx2 y 4.Tentukan nilai parameter pada bagian kedua menggunakan titik terakhir (x0,y0) yang telah di hitung pada bagian pertama, sebagai berikut P2k+1=2ry2 (xo+1/2)2+2rx2 (yo1)2rx2 ry2
5.Setiap posisi yk pada bagian kedua, dimulai dengan k=0 Bila p2k> 0 maka titik selanjutnya adalah (xk, yk1) p2k+1=p2k+2rx2yk+1+rx2 Bila tidak, maka titik selanjutnya adalah (xk+1,yk1) dan p2k+1=pk+2ry2xk+12rx yk+1+ry2 6.Tentukan titik simetris pada ketiga kuadran lainnya 7.Gerakkan setiap posisi(x,y) pada garis melingkar dari elisp dengan titik pusat(xc,yc) dan tentukan nila i koordinat x=x+xc y=y+yc 8.Ulangi langkah untuk bagian pertama di atas, sehingga 2ry2x >= 2rx2 y
Untuk menggambar ellips dengan titik pusat (0,0) dan mayor axis rx=8 serta minor axis
ry=6, perhitungan berdasarkan pada kuadran pertama
Nilai awal parameter dan increment dapat ditentukan 2ry2x=0
(increment 2ry2 =72)
2ry2x=2rx2 ry
(increment -2rx2= -128)
Untuk region 1: Titik awal dari ellips adalah pada (x0,y0)= (0,6) dan parameter awal adalah: p1o= ry2 - rx2 ry+ 1/4 rx2= -332 k
p1k
(xk+1),(yk-1)
2ry2xk+1
2rx2yk+1
0
-332
(1,6)
72
768
1
-224
(2,6)
144
768
2
-44
(3,6)
216
768
3
208
(4,5)
288
640
4
-108
(5,5)
360
640
5
288
(6,4)
432
512
6
244
(7,3)
504
384
Setelah k=6 titik telah keluar dari region 1, karena 2ry2xk+1 > 2rx2yk+1
Untuk region 2, titik awal (x0,y0)=(7,3) dan parameter awal adalah P20=f(7+1/2, 2) =151 k
p2k
(xk+1),(yk+1)
2ry2xk+1
2rx2yk+1
0
151
(8,2)
576
256
1
233
(8,1)
576
128
2
745
(8,0)
-
-
Posisi pixel disepanjang rute elips dengan rx=8 dan ry=6 dengan midpoint algorithm pada quadran pertama
Fungsi Geometri OpenGL