Download - Grafika komputer

Transcript

IF-311 Grafika Komputer (2 sks)

Pemrograman Grafika

Ir. Sihar, MT.

Dept. Teknik Informatika

Fak. Teknik

Bandung – 2002

Daftar Pustaka

1) Bloomenthal, J., Wyvill, B. (1997). Introduction to

Implicit Surfaces. Morgan Kaufmann.

2) Bratley, P., B. L. Fox, and L. E. Schrage. (1987). A

Guide to Simulation, Second Edition. Springer-Verlag.

3) Cook, R.L., Torrance, K.E. (1982). “A Reflactance Model

for Computer Graphics”. ACM Trans.Graph.

4) Harrington, S. (1983). Computer Graphics: A

Programming Approach. McGraw-Hill.

5) Plastock, R.A. (1986). Computer Graphics. Schaum's

Outline Series.

Kasus-1: Sebuah persegipanjang dengan panjang=4-satuan dan lebar=3-satuan menempati ruang A6x8 dengan salah satu titik persegipanjang tersebut berada pada:

Susunlah konstruksi algoritma, perspektif manual, dan perspektif komputer umum (C++ dan BASIC).

4

3a

Solusi:

Ruang vektor a ditransformasikan dalam dimensi A6x8:

Konstruksi algoritma

A6x8= (1,1)

(6,1)

(2,1)

(…)

(6,2)

(…)

(6,8)

(1,8)

(2,8)

(…)

(4,4)

(5,4)

(6,4)

(3,4)

(4,5)

(5,5)

(6,5)

(3,5)

(4,6)

(5,6)

(6,6)

(3,6)

(4,7)

(5,7)

(6,7)

(3,7)

(4,8)

(5,8)

(6,8)

(3,8)

(…)

(…)

4

3a

x

y

-y

perspektif konvensional

perspektif komputer

Sumbu cartesian dalam perspektif konvensional berkebalikan dengan sumbu cartesian dalam perspektif

komputer (C++ dan BASIC)

Asumsi-1: titik a(3,4)

(3,4)

Asumsi-2: titik a(3,4)

(3,4)

Asumsi-3: titik a(3,4)

(3,4)

Asumsi-4: titik a(3,4)

(3,4)

Dalam grafika komputer,asumsi yang digunakanadalah 1 (perspektifkonvensional) dan 2(perspektif komputer)

Bidang dan dimensi layar

komputer bahkan printer dapat

dipetakan/direpresentasikan

dalam dimensi dan ruang

matriks maupun vektor, namun

tergantung juga dari aspek

hardware. Seperti VGA-card

(monitor) dan resolusi printer.

Berdasar kasus tersebut, dapat diasumsikan sbb:

x

x

x

x

y

y

y

y

Perspektif konvensional

Perspektif komputer (C++)

Algoritma dan pemrograman C++ Algoritma dan pemrograman BASIC

Perspektif komputer (BASIC)

berlaku secara umum (based-math)

Berdasar kasus-1 tersebut, apabila dilakukan pembesaran terhadap persegipanjang sebanyak 3 kali, maka dapat disusun konstruksi algoritmanya berikut ini:

;)12(

)9(

)4)(3(

)3)(3(

=

a ;

)12(

)21(

)4)(3(

)7)(3(

=

b ;

)21(

)21(

)7)(3(

)7)(3(

=

c ;

)21(

)9(

)7)(3(

)3)(3(

=

d

Perspektif komputer (C++)Algoritma dan pemrograman C++

Solusi: untuk BASIC, skala 3 kali terlalu kecil

Tunjukkan dalam perspektif komputer (C++ dan BASIC)

Kasus-2:

Berdasar kasus-1 tersebut, apabila dilakukan pembesaran terhadap persegipanjang sebanyak 50 kali, maka dapat disusun konstruksi algoritmanya berikut ini:

;)200(

)150(

)4)(50(

)3)(50(

=

a ;

)200(

)350(

)4)(50(

)7)(50(

=

b ;

)350(

)350(

)7)(50(

)7)(50(

=

c ;

)350(

)150(

)7)(50(

)3)(50(

=

d

Algoritma dan pemrograman BASICPerspektif komputer (BASIC)

Tunjukkan dalam perspektif komputer (C++ dan BASIC)

Solusi: untuk C++, skala 50 kali terlalu besar

Kasus-3:

Kasus-4: Tiga vektor dalam A380x620 membentuk segitiga dengan masing-masing:

Jika masing-masing vektor tersebut dikalikan dengan skalar 30 untuk membentukbidang dimensi-2, tunjukkanlah model segitiga tersebut dalam algoritma danpemrograman BASIC.

12

13;

7

14;

6

10cba

Solusi: Konstruksi algoritma

;)180(

)300(

)6)(30(

)10)(30(

=

a ;

)210(

)420(

)7)(30(

)14)(30(

=

b ;

)360(

)390(

)12)(30(

)13)(30(

=

c

Perspektif konvensional Algoritma dan pemrograman BASIC Perspektif komputer

Tampilan jalannya program

Perspektif konvensional Algoritma dan pemrograman C++ Perspektif komputer

Tampilan jalannya program

Berikut ditunjukkan dengan pendekatan C++:

Kasus-5: Jika dengan pendekatan metode optik, perspektif komputer merupakan bayangan dari perspektif konvensional, maka tunjukkanlah konstruksi algoritma beserta algoritmanya jika diketahui bidang 2-dimensi berikut:-jajarangenjang: p=5-satuan; t=4-satuan dengan jarak dari titik a=2-satuan-belahketupat:diameter-silang=8-satuan-layang-layang: diameter-panjang=13-satuan; diameter-lebar=6-satuanUntuk layang-layang, titik-potong panjang dan lebar 10-satuan dari titik-ekor.Dan masing-masing bidang geometri tersebut salah satu titik berada pada:

Solusi: Metode optik pada cermin datar dapat ditunjukkan pada skema berikut ini:;

6

7

a

Jarak benda ke cermin sama dengan jarak bayangan ke cermin

Postulat:

Ukuran benda sama dengan ukuran bayangan

Sinar/cahaya yang datang ke cermin akan dipantulkan kembali ke sumber

Prinsip ini sesuai dengan kriteria perspektif konvensional dan perspektifkomputer dalam grafika komputer.

Contoh: perspektif komputer hasil pantulan cermin-datar dari perspektif konvensional untukgeometri 2-dimensi pada satu persegipanjang dan satu segitiga

Penjelasan:

Solusi Kasus-5: Jajarangenjang dengan p=5 dan t=4-satuan, dengan jarak dari a=2-satuan, dimana:

;6

7

a

Perspektif konvensional

2-satuan

Konstruksi algoritma: xb=7+5 = 12, dan xd=xa+2=9; yd=ya+4=10 ; ab≡dc=5-satuan

b

cd

Solusi Kasus-5: Jajarangenjang dengan p=5 dan t=4-satuan, dengan jarak dari a=2-satuan, dimana:

;6

7

a

Perspektif BASIC, dengan skalabilitas 30 kali.

Solusi Kasus-5: Belahketupat dengan diameter-silang=8-satuan, dimana salah satu titik pada:

;6

7

a

Perspektif konvensional

Konstruksi algoritma: xa=xc, yc=ya+8=14, dan xd=xa-0.5(8)=3; yd=ya+0.5(8)=10

b

c

d

Solusi Kasus-5: Belahketupat dengan diameter-silang=8-satuan, dimana salah satu titik pada:

;6

7

a

Perspektif BASIC, dengan skalabilitas 30 kali.

Solusi Kasus-5: Layang-layang dengan diameter-panjang=13-satuan; diameter-lebar=6-

satuan; titik-potong diameter-panjang dan lebar adalah 10-satuan dari titik-

ekor, dimana salah satu titik pada:;

6

7

a Perspektif konvensional

Konstruksi algoritma:

xa=xc, yc=ya+13=19, danxd=xa-0.5(6)=4; yd=ya+10=16

b

c

d

Solusi Kasus-5: Layang-layang dengan diameter-panjang=13-satuan;diameter-lebar=6-

satuan; titik-potong diameter-panjang dan lebar adalah 10-satuan dari titik-

ekor, dimana salah satu titik pada:;

6

7

a

Perspektif BASIC, dengan skalabilitas 20 kali, jika 30 kali maka akan terjadi over-flow.

Kasus-6: Jika diketahui sebuah model 1-dimensi dalam bentuk perspektif konvensionalseperti ditunjukkan berikut ini:

;11

10

a

Bangunlah model perspektif komputer dalam C++ dan BASIC; khusus untukBASIC lakukan skalabilitas 10 kali, jika vektor dimulai:

Model secara konvensional

Algoritma dan pemrograman C++

Tampilan jalannya pemrograman:

Solusi:

Algoritma dan pemrograman BASIC

Model secara konvensional

Algoritma dan pemrograman C++ (modifikasi)Tampilan jalannya pemrograman:

Dilakukan modifikasi

solusi pada kasus-6

pada perspektif

komputer untuk C++

Kasus-7: Jika diketahui sebuah model 1-dimensi dalam bentuk perspektif konvensionalseperti ditunjukkan berikut ini:

;3

4

a

Bangunlah model perspektif komputer dalam C++, apabila vektor dimulai:

Model secara konvensional

Algoritma dan pemrograman C++Tampilan jalannya pemrograman:

Solusi:

Kasus-8: Jika diketahui sebuah model 1-dimensi dalam bentuk perspektif konvensionalseperti ditunjukkan berikut ini:

Bangunlah model perspektif komputer dalam C++berdasar model konvensionaltersebut.

Model secara konvensional

Solusi:

Algoritma dan pemrograman C++Tampilan jalannya pemrograman:

Kasus-9: Jika diketahui sebuah model 1-dimensi dalam bentuk perspektif konvensionalseperti ditunjukkan berikut ini:

Bangunlah model perspektif komputer dalam C++ dan BASIC (skala:15 kali)berdasar model konvensional tersebut.

Model secara konvensional

a

b

c

d

e

f

Algoritma dan pemrograman C++

Tampilan jalannya pemrograman:

Solusi:

Tampilan jalannya pemrograman:

Algoritma dan pemrograman BASIC