13
Grafika Komputer Evangs Mailoa

Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Embed Size (px)

Citation preview

Page 1: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Grafika Komputer

Evangs Mailoa

Page 2: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Mengenal ViewPort dan World Coordinate

• Selama ini kita menggunakan sumbu koordinat denganperhitungan banyaknya pixel.

• Padahal dalam matematika atau dunia nyata, mungkinada fungsi yang tingginya maksimum 2.45 dan minimum – 1.75, yang tidak harus bilangan bulat positif.

• Semua ini dinyatakan dalam koordinat Cartesius. Karenaitu perlu adanya transformasi dari koordinat layar kekoordinat nyata (World Window) dan ViewPort.

Page 3: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

• Konsep dasar dari world window dan viewport adalah sebagai berikut:

Mengenal ViewPort dan World Coordinate

Page 4: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

• World coordinate dinyatakan dengan w, batas kiri (left), kanan (right), atas (top), dan bawah (bottom), masing-masing dinyatakan dengan w.l, w.r, w.t, w.b.

• Koordinat viewport dinyatakan dengan v, batas kiri (left), kanan (right), atas (top), dan bawah (bottom),masing-masing dinyatakan dengan v.l, v.r, v.t, v.b.

Mengenal ViewPort dan World Coordinate

Page 5: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Pemetaan dari World Coordinate ke ViewPort

Sumbu sx terhadap x dan sumbu sy terhadap y, dinyatakan dengan :

sx = Ax + Csy = By + D

untuk suatu konstanta A, B, C, dan DKonstanta A dan B menskala sumbu x dan y, sedangkan C dan D menggeser obyek

lWrW

lVrVA

..

..

bWtW

bVtVB

..

..

C = V.l – A W.l

D = V.b – B W.b

Page 6: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Contoh pemetaan Window dan Viewport

Perhatikan gambar berikut:

(w.l,w.r,w.t,w.b) = (0.0, 2.0, 0.0, 1.0) dan(v.l, v.r, v.t, v.b) = (40, 400, 60, 300)

Dengan menggunakan rumus sebelumnya, didapat

A= 180, B = 240, C = 40 dan D = 60

Page 7: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Pemetaan Window dan Viewport

Sehingga pemetaan dari world ke viewport menggunakan persamaanberikut ini.

sx= 180x + 40sy= 240y + 60

Dalam OpenGL, pemetaan tersebut dinyatakan dengan

glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, 2.0, 0.0, 1.0); // mengatur windowglViewport(40, 400, 60, 300); // mengatur viewport

Silahkan lihat pada contoh-contoh program materi sebelumnya, perintah-perintah ini adalah bagian dari fungsi init()

Page 8: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Tugas

Buatlah program untuk menampilkankonfigurasi hexagon (6-gon/segi enam) seperti gambar disamping ini

Page 9: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

TugasUntuk menggambar poligon beraturan (n-gon) perlu diketahuiprinsip dasarnya sebagai berikut

Setiap titik sudut n-gon ( Pi ) mempunyai koordinat :

untuk i = 0, 1, …, n-1

dimana = 3.14159265

)2

sin,2

cos(n

iR

n

iRPi

Page 10: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Listing Program

Sebagai bantuan, fungsi untuk membuat n-gon dapat memodifikasi program contoh 2 materi 2, pada fungsi display diberikan perintah-perintah berikut ini.

glBegin(GL_LINE_STRIP);

glColor3f(0.0, 0.0, 1.0); /* hexagon */

glVertex2f(10.0, 0.0);

glVertex2f(10 * cos(2*3.14159265*1/6), 10 * sin(2*3.14159265*1/6));

glVertex2f(10 * cos(2*3.14159265*2/6), 10 * sin(2*3.14159265*2/6));

glVertex2f(10 * cos(2*3.14159265*3/6), 10 * sin(2*3.14159265*3/6));

glVertex2f(10 * cos(2*3.14159265*4/6), 10 * sin(2*3.14159265*4/6));

glVertex2f(10 * cos(2*3.14159265*5/6), 10 * sin(2*3.14159265*5/6));

glEnd();

Page 11: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Listing Program

Atau cara yang lebih baik dan fleksibel adalah dengan membuat fungsi berikut:

void ngon(int n, float cx, float cy, float radius, float rotAngle)

{

double angle , angleInc;

int k;

if(n < 3) return; // jumlah sisi tidak memenuhi syarat

angle = rotAngle * 3.14159265 / 180; // initial angle

angleInc = 2 * 3.14159265 /n; //angle increment

glVertex2f(radius * cos(angle) + cx, radius * sin(angle)+cy);

for(k = 0; k < n; k++) // repeat n times

{

angle += angleInc;

glVertex2f(radius * cos(angle) + cx, radius * sin(angle) + cy);

}

}

Page 12: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

Mau bertanya..?

Page 13: Grafika Komputer - evangsmailoa.files.wordpress.com · Mengenal ViewPort dan World Coordinate ... Pemetaan Window dan Viewport Sehingga pemetaan dari world ke viewport menggunakan

HOMEWORK! (Tugas Mandiri 4)

• Fungsi ngon dapat dimodifikasisehingga dapat menampilkanbentuk lain seperti gambar disamping. Buatlah programnya!

• Coding harus dilampirkan dan

hasil exe harus diprintscreen

• Dikumpulkan dalam kertas A4 dengan font Calibri, 12pt. Maksimal 2 halaman!

• Dikumpulkan minggu depan