bab vii

25
BAB VII TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D)

Upload: melba

Post on 06-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

BAB VII. TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D). Pengertian Dasar Transformasi (1). Pengertian Dasar Transformasi (2). Gambar 1 menunjukkan gambar rumah 2D sebelum dan sesudah transformasi Gambar 2 menunjukkan gambar rumah 3D sebelum dan sesudah transformasi. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: BAB VII

BAB VII

TRANSFORMASI OBJEK(TRANSFORMASI AFFINE 2D DAN 3D)

Page 2: BAB VII

Pengertian Dasar Transformasi (1)

Page 3: BAB VII

Pengertian Dasar Transformasi (2)

Gambar 1 menunjukkan gambar rumah 2D sebelum dan sesudah transformasi

Gambar 2 menunjukkan gambar rumah 3D sebelum dan sesudah transformasi.

Page 4: BAB VII

Transformasi Affine 2D (1)

Untuk transformasi, koordinat titik P dan Q dalam 2D dinyatakan sebagai :

dan

Hal ini berarti titik P berada pada lokasi P = Px i + Py j + , dimana titik pusat koordinat (tidak harus selalu (0,0)).

1y

x

P

P

P

1y

x

Q

Q

Q

Page 5: BAB VII

Transformasi Affine 2D (2)

Transformasi dari titik P menuju titik Q menggunakan fungsi T() berikut ini.

atau ringkasnya Q = T(P)

11y

x

y

x

P

P

TQ

Q

Page 6: BAB VII

Transformasi Affine 2D (3)

Transformasi Affine mempunyai bentuk seperti berikut ini.

dalam bentuk persamaan matriks persamaan di atas dapat diubah menjadi

11232221

131211

mPmPm

mPmPm

Q

Q

yx

yx

y

x

11 0 0

1232221

131211

y

x

y

x

P

P

mmm

mmm

Q

Q

Page 7: BAB VII

Transformasi Affine 2D (4)

Contoh : Lakukan transformasi Affine dari

titik P = (1,2) ke Q dengan matriks transformasi

Jawab :

100

212

503

1

2

8

1

2

1

1 0 0

2 1 2-

5 0 3

1y

x

Q

Q

Page 8: BAB VII

Transformasi Affine 2D (5)

Transformasi Affine berpengaruh pada 4 transformasi dasar, yaitu: translasi skala rotasi shear

Page 9: BAB VII

Transformasi Affine 2D (6)

Page 10: BAB VII

Transformasi Affine 2D untuk Translasi

atau

Matriks untuk translasi:

1100

10

01

123

13

y

x

y

x

P

P

m

m

Q

Q

1

m P

m

123y

13x

y

x P

Q

Q

100

10

01

23

13

m

m

Page 11: BAB VII

Transformasi Affine 2D untuk Skala

( Qx, Qy ) = ( Sx Px , Sy Py )

Matriks untuk skala:

100

00

00

y

x

S

S

Page 12: BAB VII

Transformasi Affine 2D untuk Rotasi

Qx = Px cos() – Py sin()Qy = Px sin() – Py cos()

Matriks untuk rotasi:

100

0)cos()sin(

0)sin()cos(

Page 13: BAB VII

Transformasi Affine 2D untuk Shear

Qx = Px + hPyQy = Py

Matriks untuk shear:

100

010

01 h

Page 14: BAB VII

Transformasi Affine 3D

Transformasinya:

dengan

11z

y

x

z

y

x

P

P

P

MQ

Q

Q

100034333231

24232221

14131211

mmmm

mmmm

mmmm

M

Page 15: BAB VII

Transformasi Affine 3D untuk Translasi

Matriks transformasinya:

1000

100

010

001

34

24

14

m

m

m

Page 16: BAB VII

Transformasi Affine 3D untuk Skala

Matriks transformasinya:

1000

000

000

000

z

y

x

S

S

S

Page 17: BAB VII

Transformasi Affine 3D untuk Rotasi

Rotasi terhadap sb. x

Rotasi terhadap sb. y

Rotasi terhadap sb. z

1000

00

00

0001

cs

cc

1000

00

0010

00

cs

sc

1000

0100

00

00

cs

sc

Page 18: BAB VII

Transformasi Affine 3D untuk Shear

Matriks transformasinya:

1000

0100

001

0001

f

Page 19: BAB VII

Transformasi Affine 3D dalam OpenGL

Penggambaran titik 3D ke dalam window adalah memproyeksikan titik (x1, y1, z1) menjadi (x1, y2, 0).

Page 20: BAB VII

Pipelining

Yaitu proses penampilan gambar sampai ke view port.

Page 21: BAB VII

Fungsi untuk Pipeline pada OpenGL

Untuk mengatur transformasi model view

Untuk mengatur kamera dengan proyeksi paralel

Untuk mengatur posisi kamera

Page 22: BAB VII

Fungsi untuk Mengatur Transformasi Modelview

glMatrixMode(GL_MODELVIEW) glScaled(sx, sy, sz)

Matrik dari obyek dikalikan masing-masing untuk penskalaan x dengan sx, y dengan sy, dan z dengan sz. Hasilnya dikembalikan lagi ke matrik obyek.

glTranslated(dx, dy, dz) Matrik dari obyek dikalikan masing-masing untuk translasi x dengan dx, y dengan dy, dan z dengan dz. Hasilnya dikembalikan lagi ke matrik obyek.

glRotated(angle, ux, uy, uz) Matrik dari obyek dikalikan masing-masing untuk rotasi sebesar sudut angle dan berputar mengelilingi sumbu antara titik pusat dengan titik (ux, uy, uz).

Page 23: BAB VII

Fungsi untuk Mengatur Kamera dengan Proyeksi Paralel

glOrtho(left, right, bott, top, near, far) Digunakan untuk membangun ruang pandang yang berupa balok berongga yang sejajar dengan sumbu x sepanjang left sampai right, sejajar sumbu y sepanjang bott sampai top, dan sejajar dengan sumbu z sepanjang -near sampai -far. Digunakan tanda negatif karena defaultnya kamera terletak pada titik pusat dan melihat ke bawah sumbu negatif z. Untuk near bernilai 2, artinya meletakkan bidang dekat pada z=-2 atau 2 unit di depan mata. Demikian juga untuk far, misalnya far = 20, artinya meletakkan bidang jauh 20 unit di depan mata.

Page 24: BAB VII

Fungsi untuk Mengatur Posisi Kamera

gluLookAt( eye.x, eye.y, eye.z, look.x, look.y, look.z, up.x, up.y, up.z);

Page 25: BAB VII

Bentuk Dasar untuk Objek 3D dalam Bentuk Wireframe dalam OpenGL

Kubus : glutWireCube(GLdouble size); menampilkan kubus dengan panjang sisi masing-masing sepanjang size.

Donat : glutWireSphare(Gldouble radius, Glint nSlices, Glint nStacks)

Kerucut : glutWireTorus(Gldouble inRad, Gldouble outRad, Glint nSlices, Glint nStacks)

Tempat teh : glutWireTeapot(Gldouble size)