output primitif
Document Sample


BAB III
OUTPUT PRIMITIF
3.1 Titik dan Garis menentukan kemiringan garis tersebut adalah
Pembentukan titik dilakukan dengan =
mengkonversi suatu posisi koordinat dengan
y − y
program aplikasi ke dalam suatu operasi =
tertentu menggunakan output tertentu. Garis x − x
dibuat dengan menentukan posisi titik awal = y − m. x
dan akhir dari suatu garis. Kemudian,
peralatan output membuat garis sesuai posisi Dengan demikian algoritma DDA adalah
titik-titik tersebut. sebagai berikut :
Posisi pixel dapat digambarkan sesuai 1. Tentukan dua titik untuk membentuk
nilai scan-line dan nilai kolom (posisi pixel garis.
yang dibuat tegak lurus dengan scan-line). 2. Beri nama dua titik tersebut dengan titik
awal (x0,y0) dan titik akhir (x1,y1)
3. Hitung ∆ = − dan ∆ = −
4. Tentukan langkah (step) jarak maksimum
jumlah penambahan nilai x dan nilai y
dengan cara
Jika nilai |∆ | lebih besar nilai
Gambar 3.1 Garis yang dihasilkan dengan pembentukan |∆ |, maka step =|∆|
satu deretan titik Jika tidak, maka step = |∆ |
5. Hitung penambahan koordinat piksel
dengan cara x_tambah = ∆ dan
∆
Y_tambah = .
6. Tentukan koordinat berikutnya (Xk+1, Yk+1)
dengan koordinat (x+x_tambah,
y+y_tambah).
7. Posisi piksel pada layar ditentukan
dengan pembuatan nilai koordinat
tersebut.
Gambar 3.2 Posisi pixel ditentukan oleh nilai scan-line
(y) dan kolom (x)
8. Ulangi langkah 6 dan 7 untuk
menentukan posisi piksel selanjutnya
3.2 Algoritma Pembentukan Garis sampai dicapai nilai x=x1 dan y=y1.
Persamaan garis lurus dengan
koordinat cartesius adalah : Contoh soal :
1. Diketahui dua titik untuk membentuk
= . + garis yaitu garis A(10,10) dan B(17,16).
Buatlah tabel perhitungan untuk untuk
Dengan m mewakili kemiringan garis dan b titik titik yang dihasilkan oleh algoritma
merupakan titik pada sumbu Y, jika diketahui pembangkitan garis DDA.
dua titik terakhir dari segmen garis yang
diposisikan pada titik (x1,y1) dan (x2,y2). Cara Jawaban :
Tabel Perhitungan
1|Page
Urut-urutan langakh algoritma garis DDA:
1. A(10,10) dan B(17,16)
2. (x0,y0) = (10,10) dan (x1,y1) = (17,16)
3. ∆ = − = 17 − 10 = 7 dan
∆ = − = 16 − 10 = 6
4. ∆ = 7 > ∆ = 6 maka step = 7
5. X_tambah = ∆ = 7 7 = 1 dan
∆
Y_tambah = = 6 7 = 0,86
6. (Xk+1, Yk+1) = (x+x_tambah, y+y_tambah) = Gambar 3.3 sebagian garis dengan pixel pada kolom xk
(10 + 1, 10 + 0,86) = (11,10.86) dan baris yk+1
7. (Xbulat, Ybulat) = (11,11)
8. Ulangi langkah 6 dan 7, akhirnya Bila p < 0, maka posisi selanjutnya
didapatkan seperti tabel berikut : (xk+1,yk), tetapi bila tidak, maka posisinya
selanjutnya (xk+1,yk+1). Sedangkan nilai p
k x y (xbulat, ybulat)
selanjutnya adalah pk+1=pk+2 ∆y atau pk+1 = pk
10 10 (10,10)
+ 2 ∆y – 2 ∆x.
0 11 10,86 (11,11)
1 12 11,71 (12,12) Langkah-langkah untuk membentuk
2 13 12,57 (13,13)
garis menurut algoritma Bresenham adalah
3 14 13,43 (14,13)
sebagai berikut :
4 15 14,29 (15,14)
5 16 15,14 (16,15) 1. Masukkan dua titik akhir dan simpan titik
6 17 16 (7,16)
akhir sebelah kiri dalam (x0,y0)
2. Isikan (x0,y0) ke dalam buffer yang akan
melukis titik pertama
3.2 Algoritma garis Bressenham 3. Hitung konstanta ∆x, ∆y, 2∆y dan 2∆y -
Prosedur untuk menggambar kembali 2∆x, dan dapatkan nilai awal untuk
garis dengan membulatkan nilai x atau y ke parameter keputusan sebagai :
bilangan interger memerlukan waktu, serta P0 = 2∆y - ∆x.
variablex,y dan m merupakan bilangan real 4. Pada masing-masing xk sepanjang garis,
karena kemiringan merupakan nilai pecahan. dimulai dengan k = 0, lakukan tes berikut :
Bressenham mengembangkan algoritma klasik jika p < 0, dan titik berikutnya yang akan
yang lebih menarik, karena hanya dilukis adalah (xk+1,yk) dan pk+1=pk + 2∆y,
menggunakan perhitungan matematik dengan selain itu, titik berikutnya yang dilukis
bilangan interger. Dengan demikian tidak adalah (xk+1, yk+1) dan pk+1= pk + 2∆y -
perlu membulatkan nilai posisi pixel setiap 2∆x.
waktu. 5. Ulangi langkah 4 untuk menentukan
Pada gambar 3.3 dapat dilihat langkah posisi pixel selanjutnya, sampai x=x1 dan
dimana posisi pixel dapat diperoleh dalam y=y1.
pembentukan garis. Posisi pixel selanjutnya Contoh : Algoritma penggambaran garis
adalah (xk+1,yk) atau (xk+1,yk1). Posisi ini bresenham.
tergantung dari nilai parameter p.
2|Page
1. Diketahui dua titik pembentuk garis yaitu
titik (10,10) dan (17,16), buatlah tabel
perhitungan untuk titik-titik yang
dihasilkan oleh algoritma pembangkitan
garis bresenham
∆x = 17 – 10 = 7
∆y = 16 -10 = 6
2∆x = 2 x 7 = 14
2∆y = 2 x 6 = 12
P0 = 2∆y - ∆x = 2x6 – 7 Gambar 3.4 Lingkaran dengan (xc,yc) sebagai pusat
= 12 – 7 lingkaran dengan r radius
=5 Lingkaran juga dapat didefinisikan
Karena P0 > 0, maka titik selanjutnya adalah menggunakan koordinat polar. Lingkaran
(xk+1,yk+1) = (10+1,10+1) yangsama dapat didefinisikan sebagai berikut
= (11,11) :
Pk+1 = pk + 2∆y - 2∆x x = r cos + xc
y = r sin + yc
P1 = 5 + (12) – (14)
dimana 0 < < 2
P1 = 3
Kita dapat menggambarkan lingkaran
dengan menggunakan persamaan koordinat
k pk (xk+1, yk+1) rectangular diatas, akan tetapi pendekatan ini
(10,10) menimbulkan dua masalah yaitu :
0 3 (11,11) 1. Persamaan tersebut mengandung
1 1 (12,12) perhitungan akar yang operasinya
2 -1 (13,13) memakan waktu.
3 11 (14,13) 2. Timbul gap yang cukup signifikan pada
4 9 (15,14) lingkaran ketika digambarkan.
Lingkaran dapat juga digambarkan
5 7 (16,15)
dengan menggunakan persamaan koordinat
6 5 (17,16)
polar, tetapi fungsi trigonometri juga
membutuhkan cost yang tidak sedikit
sehingga algoritma yang disusun tidak akan
3.3 Algoritma Pembentuk Lingkaran efisien.
Lingkaran merupakan objek grafik Untuk mengatasi masalah yang timbul
yang paling sering digunakan pada grafik dari penerapan koordinat polar maupun
sederhana. Lingkaran dapat didefinisikan rectangular, Bresenham menyusun suatu
sebagai kumpulan titik yang memiliki jarak r algoritma pembentukan lingkaran yang hanya
dari posisi pusat (xc,yc). Persamaan lingkaran menggunakan aritmetika integer. Secara
dengan titik pusat (xc,yc) dan radius r dapat prinsip algoritma ini sejenis denga algoritma
dispesifikasikan menggunakan koordinat penggambaran garis yang disusun oleh orang
rectangular berikut : yang sama.
Lingkaran merupakan objek yang
(x – xc)2 + (y-yc)2 = r2 simetris sehingga karakteristik ini dapat
dimanfaatkan untuk mengurangi pekerjaan
pada saat menggambar lingkaran. Lingkaran
dibagi menjadi 8 oktan (lihat gambar 3.x),
3|Page
misalkan kita menyusun algoritma untuk dimana 2 xk+1 = 2 xk + 2, dan 2 yk+1 = 2 yk -2
menggambarkan lingkaran di oktan pertama, 4. Tentukan titik simetri untuk 7 oktan
maka koordinat untuk 7 oktan selanjutnya lainnya dengan menggunakan table 3.1
dapat ditentukan pada table 3.1 berikut 5. Untuk lingkaran dengan pusat bukan di
(0,0). Pindahkan setiap posisi pixel hasil
Tabel 3.1 Koordinat simetri 8 oktan perhitungan (x, y) dengan rumus x = x + xc
, y = y + yc
6. Ulangi langkah 3 sampai 5, hentikan ketika
x >= y
Contoh soal :
1. Algoritma pembangkitan lingkaran
dengan “Lingkaran Titik Tengah”.
Diketahui jari-jari lingkaran r=10, dan titik
pusat (0,0). Buatlah tabel perhitungan
untuk titik-titik yang dihasilkan oleh
algoritma penggambaran – lingkaran titik
tengah
Jawab:
Penggambaran lingkaran titik tengah
untuk titik pusat (0,0), dimulai dari
kuadaran pertama yaitu dari x=0 ke x=y.
Nilai awal parameter keputusan adalah :
P0 = 1 – r = -9
Pk < 0 maka rumus yag dipakai (xk+1, yk)
= (x0+1, 0)
= (1 , 10)
P1 = -9 + 2 x+1 + k
Gambar 3.5 Lingkaran dengan 8 oktan = -9 + (2x1) + 1
= -6
Tahapan penggambaran lingkaran
dengan menggunakan algoritma yang dikenal Pk < 0 maka rumus yag dipakai (xk+1, yk)
dengan nama algoritma midpoint ini adalah = (x1+1, 0)
sebagai berikut : = (1+1 , 10)
1. Input jari-jari r dan koordinat pusat = (2, 10)
lingkaran (xc, yc), kemudian tntukan Oktan 1
koordinat untuk titik awal yaitu (x0, y0) = k pk (xk+1, yk+1)
(0, r). 0 -9 (1,10)
2. Hitung nilai awal untuk parameter 1 -6 (2,10)
keputusan p0 = 1 – r 2 -1 (3,10)
3. Untuk setiap xk, mulai dari k=0, lakukan 3 6 (4,9)
langkah berikut : 4 -3 (5,9)
jika pk<0, maka titik selanjutnya pada
5 8 (6,8)
lingkaran dengan pusat (0,0) adalah
(xk+1, yk) dan pk+1 = pk + 2 xk+1 + 1, 6 5 (7,7)
jika pk≥0, titik berikutnya adalah (xk+ 1, yk
- 1)
dan pk+1 = pk + 2 xk+1+ 1 - 2 yk+1
4|Page
3.4 Algoritma Pembentukan Elips pertama. Pergeseran dengan unit step dalam
Ellips merupakan salah satu objek x pada saat slope lebih besar dari 1
grafis dengan persamaan koordinat Alternative lain dimulai pada rx,0) dan
rectangular sebagai berikut : seleksi titik dalam arah berlawanan dengan
jarum jam pergeseran unit step y ke unit step
x pada saat kemiringan lebih besar daripada -
1.
Algoritma untuk menggambarkan
ellips yang dikenal dengan sebutan Midpoint
ellipse algorithm adalah sebagai berikut :
dan persamaan polar :
1. Input rx, ry dan pusat Ellips (xc, yc),
tentukan titik pertama pada pusat ellips
sebagai : (x0,y0) = (0,Ry)
2. Hitung nilai awal parameter keputusan di
region 1 :
P10 = − +
Teknik yang digunakan untuk
menggambarkan garis dan lingkaran yang 3. Untuk semua xk di region 1, dimulai dari
telah dibicarakan sebelumnya dapat k=0 lakukan tes berikut :
jika p1k < 0 titik selanjutnya dari ellips
diimplementasikan untuk menggambarkan
yang berpusat di (0,0) adalah
ellips.
Elipps merupakan objek yang memiliki
empat bagian yang simetris seperti
gambarkan ada gambar 3.6. dari karakteristik
ini, dapat disusun suatu algoritma yang jika p1k >=0 maka titik selanjutnya adalah
memplot pixel di kuadran pertama dan :
menentukan titik di tiga kuadran lainnya.
Kuadran pertama dibagi menjadi 2
Dengan
(dua) region dan dengan menggunakan
algoritma midpoint ellipse, plot titik untuk
region pertama, kemudian koordinat akhir 4. Hitung nilai awal dari parameter
pada region I menjadi koordinat awal untuk keputusan di region 2 menggunakan titik
region II. akhir dari region 1 sebagai (x0,y0) dengan
rumus :
5. Untuk setiap yk di region 2 dimulai dari
k=0 lakukan uji berikut :
jika p2k < 0 titik selanjutnya dari ellips
yang berpusat di (0,0) adalah
Gambar 3.6 jika p2k >=0 maka titik selanjutnya adalah
Region 1 dan 2 dapat digunakan
dengan berbagai macam cara. Pertama 6. Tentukan titik simetris pada tiga kuadran
dimulai dari posisi (0,r) dan melangkah searah lainnya
jarum jam sepanjang jalur ellips pada kuadran
5|Page
7. Pindahkan posisi (x,y) ke titik pusat ellips Karena p1k < 0, maka titik selanjutnya (2, 10)
(xc, yc) dengan rumus
P1k+1 = p1k + 2 xk+1 +
8. Ulangi langkah untuk region 1 sampai P1k+1 = -224 + 2.102.2 + 102 = - 276
Karena p1k > 0, maka titik selanjutnya (3, 9)
P10 = − − +2 +
2 2 2
= 276 + 2.10 .3 – 2.8 .9 + 10
= 276 + 600 – 1152 + 102 = -176
Dan seterusnya. Setelah ditabelkan maka
menjadi :
k pk (xk+1, yk+1)
(0,10)
0 -524 (1,10)
1 -224 (2,10)
2 276 (3,9)
3 -176 (4,9)
4 724 (5,8)
5 800 (6,7)
6 1204 (6,6)
7 -575 (7,5)
8 284 (7,4)
9 -163 (8,3)
10 1153 (8,2)
11 961 (8,1)
12 897 (8,0)
Contoh : Karena titik pusatnya tidak di (0,0) tetapi
(10,10) maka tabel diatas menjadi.
Algoritma pembangkitan elips dengan Titik pusat (0,0) Titik pusat
k pk
perhitungan “Elips Titik Tengah” Diketahui (xk+1, yk+1) (0,100)
jari-jari lingkaran rx = 8 dan ry = 10, dan titik (xk+1, yk+1)
pusat (100,100), Buatlah tabel perhitungan (0,10) (100,110)
0 -524 (1,10) (101,110)
untuk titik-titik yang dihasilkan oleh algoritma
1 -224 (2,10) (102,110)
elips.
2 276 (3,9) (103,109)
(x0, y0) = (0, ry) = (0, 10) 3 -176 (4,9) (104,109)
4 724 (5,8) (105,108)
P10 = − + 5 800 (6,7) (106,107)
2 2 6 1204 (6,6) (106,106)
P10 = 10 – 8 10 + ¼
7 -575 (7,5) (107,105)
= 100 – 640 + 16 = -524
8 284 (7,4) (107,104)
Karena p1k < 0, maka titik selanjutnya (1, 10) 9 -163 (8,3) (108,103)
10 1153 (8,2) (108,102)
P1k+1 = p1k + 2 xk+1 + 11 961 (8,1) (108,101)
12 897 (8,0) (108,100)
P1k+1 = -524 + 2 102 1 + 102 = -224
6|Page
7|Page
Get documents about "