BAB VII

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

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 of BAB VII

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)