2. Sistem koordinat digunakan untuk
memetakan titik
Sistem koordinat yang umum dikenal mis:
sistem koordinat polar dan sistem koordinat
kartesian
Dalam koordinat kartesian, titik didefinisikan
sebagai kombinasi dua bilangan yang
menentukan posisinya dalam koordinat x dan
y (2D)
6. Titik(point) dalam grafika komputer didefinisikan
sebagai suatu posisi tertentu dalam sistem
koordinat
Pixel merupakan ukuran satuan gambar terkecil
dalam layar dan dapat ditempati oleh satu titik
Maksimum titik atau pixel yang dapat ditempati
dalam satu layar disebut resolusi
7. Garis merupakan kumpulan titik – titik
Persamaan garis lurus pada koordinat kartesian
y =m.x+b dimana: m=gradien, b=intercept
m=y1-y0 / x1-x0
b= y1-m.x1
Berdasarkan algoritma diatas dikembangkan
beberapa algoritma utk membangkitkan garis
- Algoritma DDA ( digital differential Analyzer )
- Algoritma Bresenham
8. Prinsip algoritma DDA adalah mengambil nilai integer
teredekat 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 utk pembentukan garis
2. Tentukan salah satu titik sebagai awal (x0,y0) dan yang lain sebagai
titik akhir (x1,y1)
3. Hitung dx=x1-x0 dan dy=y1-y0
4. Tentukan step untuk titik x dan y
- if abs(dx) > abs(dy), step= dx else step= dy
5. Hitung penambahan koordinat pixel
- x_increment = dx/step
- y_increment = dy/step
6. Koordinat selanjutnya (x+x_inc, y+y_inc)
7. Posisi pixel pada layar merupakan pembulatan dari nilai koor pixel
8. Ulangi langkah 6 & 7 sampai x=x1 dan y=y1
9. Algoritma bresenham tidak menggunakan pembulatan nilai real seperti
DDA, melainkan penambahan nilai integer untuk membentuk garis
Pada setiap iterasi algoritma bresenham, salah satu posisi (x atau y)
diubah nilainya dengan 1,apabila x diubah , y bisa diubah ataupun tetap
tergantung dari nilai e (ketelitian) begitupun sebaliknya
Nilai ketelitian adl jarak antara garis sesungguhnya dengan pixel yg
dihidupkan dan diukur tegak lurus thd sumbu yg mengalami
kecendrungan pertambahan lebih banyak
Algoritma pembentukan garis bresenham :
1. Tentukan dua titik yang akan dihubungkan
2. Tentukan salah satu titik sebagai awal yaitu(x0,y0) dan titik lainnya sebagai titik
akhir(x1,y1).
3. Hitung dx,dy
4. Hitung nilai e = 2*dy-dx
6. Untuk setiap integer mulai dari 1 sampai dx, bangkitkan pixel mulai dari x0,y0
kemudian cek nilai e, if e>0 then y= y+1 dan e=e+(2*dy-2*dx)
else e=e+2*dy dan x=x+1
10. Lingkaran merupakan kumpulan titik yang
berjarak sama terhadap titik pusat (x,y)
Rumus dasar lingkaran: (X-Xc)2+(Y-Yc)2=r2
11. Dari rumus lingkaran dapat dibentuk
persamaan untuk menghitung titik yg
melalui jalur lingkaran
Setengah lingkaran yang dibentuk oleh
persamaan diatas dengan (Xc,Yc)=0,0
Kekurangannya:
- Komputasi cukup rumit
- jarak antara titik tidak sama
12. A. Algoritma titik simetris:
Algoritma ini didasarkan pada sifat lingkaran yang
simetris
(X, Y)
(Y, X)
(-X, Y)
(Y ,-X)
(X = Xc + r cos θ)
(Y= Yc + r sin θ )
13. 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
14. Langkah langkah untuk membentuk lingkaran algoritma Circle M
idpoint:
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
15. 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
16.
17. 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
constant
)
2
(
)
2
(
)
1
(
)
1
( 2
2
2
2
y
y
x
x
y
y
x
x
18. 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
19. 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 te
rakhir (x0,y0) yang telah dihitung pada bagian pertama, sebagai b
erikut
P2k+1=2ry2 (xo+1/2)2+2rx2 (yo1)2rx2 ry2
20. 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 nilai koordinat
x=x+xc y=y+yc
8.Ulangi langkah untuk bagian pertama di atas, sehingga 2ry2x >= 2rx2 y
21. 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
2ry
2x=0 (increment 2ry
2 =72)
2ry
2x=2rx2 ry (increment -2rx
2= -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
22. 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