JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK Universitas Widyatama
UJIAN TENGAH SEMESTER T.A. 2008/2009 Mata Kuliah Hari/Tanggal Waktu Dosen Penguji Sifat
: : : : :
GRAFIKA KOMPUTER JUM’AT, 3 APRIL 2009 120 MENIT TIM DOSEN BUKA BUKU (TIDAK DIPERKENANKAN SALING MEMINJAM REFERENSI, BOLEH MENGGUNAKAN KALKULATOR)
Bagian I : Pilihan Berganda (30%) 1. Pernyataan yang benar mengenai perbedaan antara Computer Graphics & Image Processing di bawah ini adalah : a. Image Processing berbasis vektor sedangkan Computer Graphics berbasis vektor b. Image Processing menitikberatkan pada memanipulasi citra sesuai dengan keperluan user c. Dalam Image Processing biasanya menggunakan model 2D/3D untuk memperoleh hasil citra yang realistik d. Computer Graphics digunakan untuk mengolah data citra untuk mendapatkan interpretasi 2D/3D e. Image Processing digunakan untuk mendeskripsikan objek dengan primitif dasar grafis untuk mem-bentuk citra 2D/3D sedangkan Computer Graphics digunakan membuat deskripsi dari sebuah citra 2. Potongan algoritma di bawah ini adalah algoritma : void createPrimitif(int x1,y1,x2,y2) { m = (y2-y1)/(x2-x1); if ((m>0)&&(m<1)) { for (x=x1;x<=x2;x++) { y+=m; putpixel(x,y); } }; else if (m>1) { for (y=y1;y<=y2;y++) { x+=1/m; putpixel(x,y); } } }
a. Digital Differential Analyser b. Midpoint c. Bresenham d. Subdivision 3. Diketahui koordinat titik A (1,3) dan titik B (8,5) maka nilai gradien dari garis yang melalui titik A dan B adalah :
a. 7/2 b. 2/7 Nilai Gradien =
YB − Y A XB − XA
c. -7/2 d. -2/-7 5−3 2 −2 = = atau 8 −1 7 −7
4. Untuk memperoleh kurva bezier seperti di bawah ini, maka dibutuhkan titik kontrol sebanyak : a. 4 b. 5
c. 6 hitung jumlah lembah dan puncak kurva d. 7
Halaman : 1 dari 5
5. Berapa waktu loading yang diperlukan untuk sistem dengan 1280 X 1024 frame buffer, 4 bits per pixel jika 104 bits dapat ditransfer per detik: a. 524 detik c. 8.73 menit b. 2097 detik d. Semua salah 327680 Jumlah pixel pada frame buffer = 1280 x 1024 = 1310720 pixel Jumlah bit pada frame buffer = Jumlah pixel pada frame buffer x jumlah bit per pixel = 1310720 x 4 = 5242880 bits 5242880 bits 524 detik 8.73menit Waktu loadingnya = = 524.28 ≈ 524 detik = = 8.73menit = = 0.15 jam 4 60 det ik 60menit 10 bits 6. Salah satu algoritma area filling adalah dengan cara melakukan penelusuran dari kiri atas sampai kanan bawah layar, sampai ditemukan batas suatu area, kemudian dilakukan operasi putpixel sampai ditemukan batas area berikutnya. Algoritma tersebut disebut a. Flood Fill b. Boundary Fill c. Scan Line d. 4-Connected Fill e. 8-Connected Fill
Untuk pertanyaan no 7-8 perhatikan informasi berikut : sebuah lingkaran dengan pusat (0,0) dan jari-jari 7 Perhitungan pembentukan lingkaran di oktan 1 (untuk no 7 & 8) k 0 1 2 3 4
X
Y
2X
2Y
0.00 1.00 2.00 3.00 4.00 5.00
7.00 7.00 7.00 6.00 6.00 5.00
0.00 2.00 4.00 6.00 8.00 10.00
14.00 14.00 14.00 12.00 12.00 10.00
Pk -6.00 -3.00 2.00 -3.00 6.00 7.00
7. Jika lingkaran tersebut digambar dengan menggunakan algoritma midpoint 8 way simetri, pada k berapa, parameter keputusan pertama kali menjadi lebih besar dari 0 (positif) : a. 0 c. 2 b. 1 d. 3 8. Perhitungan berhenti setelah memplot titik : a. (3,3) c. (5,5) b. (4,4) d. (6,6) Untuk pertanyaan no 9-11 perhatikan informasi berikut : Sebuah garis AB dengan koordinat (3,4,15,20) Rumus rotasi thd titik (Xr,Yr) x’ = xr + (x-xr) cos θ - (y-yr) sin θ x ' x t x y’ = yr + (x-xr) sin θ + (y-yr) cos θ = + Rumus translasi/perpindahan thd vektor/titik translasi (tx,ty) adalah y ' y t y (untuk no 9 & 10) Rotasi Garis AB (3,4,15,20) thd titik (3,4) xA’ = xr + (xA -xr) cos θ - (yA -yr) sin θ = 3+(3-3) cos 60 – (4-4) sin 60 = 3+ (0*0.5)–(0*-0.3) = 3+0-0 = 3 yA’ = yr + (xA -xr) sin θ + (yA -yr) cos θ = 4+ (3-3) sin 60 + (4-4) cos 60 = 4+(0*-0.3)+(0*0.5) = 4+0+0 = 4 xB’ = xr + (xB -xr) cos θ - (yB -yr) sin θ = 3+ (15-3) cos 60 – (20-4) sin 60 = 3+(12*0.5)-(16*-0.3)= 3+6+4.8 =13.8 ≈ 14 yB’ = yr + (xB -xr) sin θ + (yB -yr) cos θ = 4+(15-3) sin 60+(20-4) sin 60 = 4+(12*-0.3)-(16*0.5)= 4-3.6+8 = 8.4 ≈ 8 Rotasi Garis AB (3,4,15,20) thd titik (3,4) adalah (3,4,14,8) kemudian dipindahkan dengan vektor translasi (3,4) x A’ = 3 + 3 = 6 y A’ = 4 + 4 = 8 xB’ = 14 + 3 = 17 UTS Grafika Komputer
Ver/Rev : 0/0
Halaman : 2 dari 2
yB’ = 8 + 4 = 12 maka titiknya menjadi (6,8,17,12)
9. Berapa koordinat garis tersebut setelah mengalami rotasi berlawanan arah jarum jam dengan sudut 60o terhadap titik (3,4) (cos 60o = 0.5, sin 60o = -0.3) : a. (0,3,2,15) c. (0,3,14,16) b. (3,4,2,15) d. (3,4,14,16) Tidak ada jawaban yg benar 10. Setelah dilakukan rotasi, garis tersebut dipindahkan dengan vektor translasi (3,4), berapa koordinat garis tersebut : a. (3,7,5,19) c. (3,7,17,20) b. (6,8,5,19) d. (6,8,17,20) Tidak ada jawaban yg benar 11. Dari posisi awal, garis tersebut direfleksikan terhadap sumbu y, berapa koordinat akhir garis tersebut : refleksi thd sb.y maka x bernilai negatif a. (3,-4,15,-20) c. (3,4,-15,-20) b. (-3,-4,15,20) d. (-3,4,-15,20) 12. Jika suatu objek dicerminkan terhadap garis Y=X, maka koordinat objek tersebut : a. Nilai x akan menjadi negatif c. Nilai x menjadi y dan Nilai y menjadi x b. Nilai y akan menjadi negatif d. Semua Salah 13. Prosedur untuk menghasilkan garis yang bertipe dotted adalah : a. Pada saat plot dilakukan selang satu titik c. Pada saat plot digambarkan garis secara kontinu b. Pada saat plot menggunakan pixel mask d. Semua Salah 14. Monitor berwarna dengan system CRT menghasilkan warna dengan cara : a. Dalam sistem random menggunakan penetrasi beam. b. Dalam sistem raster menggunakan shadow mask dengan tiga electron guns. c. Menggunakan phosphor yang berbeda, tiap phosphor menghasilkan warna yang spesifik. d. Semua benar 15. Apa yang harus dilakukan untuk merefleksi sebuah lingkaran : a. Refleksikan semua titik pada lingkaran tersebut c. Refleksikan titik pusat lingkaran dan gambar ulang b. Refleksikan jari-jari lingkaran tersebut lingkaran tersebut d. Semua Salah Bagian II : ESSAY (70%) 1. (5%) Jelaskan perbedaan penggambaran garis menggunakan algoritma Bresenham dan algoritma DDA 2. (10%) Diketahui sebuah sebuah fungsi Gambar_Garis(X1,Y1,X2,Y2). Dengan menggunakan fungsi tersebut buat algoritma untuk membetnuk karakter berikut ini
Asumsi gambar tersebut terbentuk dari titik-titik berikut ini
Maka algoritma untuk membentuk font tersebut adalah Gambar_Garis(XA,YA,XB,YB) Gambar_Garis(XD,YD,XH,YH) Gambar_Garis(XA,YA,XC,YC) Gambar_Garis(XE,YE,XF,YF) Gambar_Garis(XB,YB,XD,YD) Gambar_Garis(XF,YF,XG,YG) Gambar_Garis(XB,YB,XE,YE) Gambar_Garis(XG,YG,XK,YK) Gambar_Garis(XC,YC,XD,YD) Gambar_Garis(XH,YH,XI,YI) UTS Grafika Komputer
Ver/Rev : 0/0
Gambar_Garis(XI,YI,XJ,YJ) Gambar_Garis(XJ,YJ,XM,YM) Gambar_Garis(XK,YK,XL,YL) Gambar_Garis(XL,YL,XM,YM)
Halaman : 3 dari 3
3. (20%) Lakukan perhitungan untuk menggambarkan ellips dengan menggunakan algoritma midpoint ellips, untuk ellips dengan persamaan berikut : ( x − 2) 2 ( y − 1) 2 + =1 7 4 Region I k
X
-
Y
Px
PxPy
Py
Pk
Oktan1 (X,Y)
Oktan2 (X,-Y)
X+Xc
X+Xc
Y+Yc
Oktan3 (-X,-Y)
Y+Yc
X+Xc
Oktan4 (-X,Y)
Y+Yc
X+Xc
Y+Yc
0
7
0
686
-686
-168
2
8
2
-8
-2
-8
-2
8
0
1
7
32
686
-654
-120
3
8
3
-8
-3
-8
-3
8
1
2
7
64
686
-622
-40
4
8
4
-8
-4
-8
-4
8
2
3
7
96
686
-590
72
5
8
5
-8
-5
-8
-5
8
3
4
6
128
114
14
102
6
7
6
-7
-6
-7
-6
7
Px
Py
Region 2 k
X
Y
PxPy
Pk
Oktan1 (X,Y)
Oktan2 (X,-Y)
X+Xc
Y+Yc
X+Xc
Y+Yc
X+Xc
Oktan3 (-X,-Y)
Oktan4 (-X,Y)
Y+Yc
X+Xc
Y+Yc
0
4
6
110
384
-274
-215
6
7
6
-7
-6
-7
-6
7
1
5
5
142
286
-144
-310
7
6
7
-6
-7
-6
-7
6
2
6
4
174
188
-14
-276
8
5
8
-5
-8
-5
-8
5
3
7
3
206
90
116
-111
9
4
9
-4
-9
-4
-9
4
4
8
2
238
-8
246
184
10
3
10
-3
-10
-3
-10
3
5
8
1
238
-106
344
339
10
2
10
-2
-10
-2
-10
2
6
8
0
238
-204
442
592
10
1
10
-1
-10
-1
-10
1
4. (15%) Diketahui 4 buah titik kontrol dengan koordinat C1(0,1), C2(2,2), C3(3,-1), dan C4(4,1) dengan menggunakan kenaikan t=0.01 maka tentukanlah: a. Berapa titik yang digunakan untuk membangun kurva bezier ? b. Berapa nilai titik pada kurva pada saat t=0.83 ? Jumlah titik yang digunakan untuk membangun kurva bezier dengan kenaikan t = 0.01 adalah
1 1 = = 100 titik t 0.01 3 Nilai titik kurva dapat diketahui dengan rumus ( x + y ) = x 3 + 3 x 2 y + 3xy 2 + y 3 , subtitusi x = 1-t dan y = t, sehingga
persamaan tersebut menjadi (1 − t ) + 3(1 − t ) t + 3(1 − t )t 2 + t 3 Maka nilai titik kurva pada saat t=0.83 dapat dihitung sebagai berikut 3
2
X (t ) = (1 − t ) + 3(1 − t ) t + 3(1 − t )t 2 + t 3 3
2
X (0.83) = (1 − 0.83) (x c1 ) + 3(1 − 0.83) (0.83)(x c 2 ) + 3(1 − 0.83)(0.83) (x c 3 ) + (0.83) (x c 4 ) 3
2
2
3
= (0.17 ) (0 ) + 3(0.17 ) (0.83)(2 ) + 3(0.17 )(0.83) (3) + (0.83) (4 ) 3
2
2
3
= (0.004913)(0 ) + 3(0.0289 )(0.83)(2 ) + 3(0.17 )(0.6889 )(3) + (0.571787 )(4 ) = (0.004913)(0 ) + (0.013715 )(2 ) + (0.351339 )(3) + (0.571787 )(4 ) = 0 + 0.02743 + 1.054017 + 2.287148 = 3.368595 Y (t ) = (1 − t ) ( y c1 ) + 3(1 − t ) t ( y c 2 ) + 3(1 − t )t 2 ( y c 3 ) + t 3 ( y c 4 ) 3
2
= (0.17 ) (1) + 3(0.17 ) (0.83)(2 ) + 3(0.17 )(0.83) (− 1) + (0.83) (1) = (0.004913)(1) + 3(0.0289 )(0.83)(2 ) + 3(0.17 )(0.6889 )(− 1) + (0.571787 )(1) 3
2
2
3
= (0.004913)(1) + (0.013715 )(2 ) + (0.351339 )(− 1) + (0.571787 )(1) = 0.004913 + 0.02743 − 0.351339 + 0.571787 = 0.955469
Nilai titik kurva pada saat t=0.83 adalah (3.368595, 0.955469) UTS Grafika Komputer
Ver/Rev : 0/0
Halaman : 4 dari 4
5. (20%) Buktikan dengan menggunakan matriks transformasi bahwa : Refleksi terhadap garis y = -x ekuivalen dengan refleksi relatif terhadap sumbu y dilanjutkan dengan rotasi searah jarum jam dengan sudut 90o Refleksi thd sb. y=-x
x ′ S x 0 x − 1 0 x − x y ′ = 0 S y = 0 − 1 y = − y y Refleksi thd sb. y x ′ S x 0 x − 1 0 x − x y ′ = 0 S y = 0 1 y = y y Hasil refleksi thd sb. y kemudian dirotasi searah jarum jam dengan sudut 90o, menghasilkan x ′ cos θ − sin θ − x cos(− 90 ) − sin (− 90) − x 0 1 − x − x y ′ = sin θ cos θ y = sin (− 90 ) cos(− 90 ) y = − 1 0 y = − y berdasarkan hasil refleksi thd sb. y kemudian dirotasi searah jarum jam dengan sudut 90o, terlihat bahwa hasilnya sama dengan hasil refleksi thd sb. y=-x...terbukti
UTS Grafika Komputer
Ver/Rev : 0/0
Halaman : 5 dari 5