P. 1
Makalah UAS Grafika

Makalah UAS Grafika

|Views: 413|Likes:
Published by محمد فرقان

More info:

Published by: محمد فرقان on Jul 19, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

01/01/2013

pdf

text

original

TRANSFORMASI 3 DIMENSI

Disusun Oleh :

TI - 0801029 Muhammad Furqan. Q. Ts.

KATA PENGANTAR

Puji dan syukur dipanjatkan ke hadirat Alloh Tuhan Semesta Alam, yang telah memberikan kesehatan dan mengaruniakan berkat-Nya, sehingga penyusunan Makalah yang berjudul : “Transformasi 3 Dimensi”, dapat diselesaikan oleh penulis dengan baik. Karya ini disusun untuk memberikan pengetahuan yang baru dan lebih mendalam kepada para pembaca mengenai pembuatan objek grafik atau gambar yang tampak lebih nyata dengan menggunakan program komputer dengan memperhitungkan model-model proyektif dan perspektif. Penulis berharap agar kiranya, setelah selesai membaca makalah ini, pembaca mampu menerapkan prinsip-prinsip penggambaran objek grafik 3 dimensi dengan menggunakan library openGL secara terstruktur dan terkonsep, mulai dari penyusunan dan pendeklarasian struktur data titik dan face, hingga pemodelan dan penggambaran objek grafik 3 dimensi dengan menggunakan prosedur serta struktur data yang telah dideklarasikan sebelumnya. Penulis menyadari bahwa makalah ini masih sangat jauh dari kesempurnaan. Masih terdapat banyak kesalahan-kesalahan maupun kekeliruan-kekeliruan yang dibuat oleh penulis selama menyusun makalah ini. Oleh karenanya, penulis memohon kritik dan saran yang membangun dari para pembaca sekalian agar nantinya dapat menyusun karya-karya yang lebih baik di masa mendatang. Akhir kata, penulis mengucapkan terima kasih kepada pihak-pihak yang turut mengambil bagian dalam penyusunan karya ini. Semoga karya ini mampu memberikan informasi yang bermanfaat bagi para pembaca yang tertarik di

i|Page

bidang pemodelan 3 dimensi dan mereka-mereka yang baru mau mulai untuk mempelajari dan mendalami bidang ini.

Bandung, 10 Juli 2010

ii | P a g e

DAFTAR ISI
KATA PENGANTAR....................................................................... i DAFTAR ISI ......................................................................... iii

PENDAHULUAN ......................................................................... 1 PEMBAHASAN A. B. 4 C. 5 D. E. F. ......................................................................... 3 PENDAHULUAN................................................. 3 TRANSLASI....................................................... SCALING........................................................... ROTASI terhadap Sumbu x............................... 6 ROTASI terhadap Sumbu y............................... 8 ROTASI terhadap Sumbu z............................... 9

PERKALIAN MATRIKS.................................................................... 11 A....................................Perkalian Matriks dengan Matriks 11 B.....................................Perkalian Matriks dengan Vektor 12 PENUTUP ......................................................................... 21

iii | P a g e

DAFTAR PUSTAKA........................................................................ 23

iv | P a g e

PENDAHULUAN
Pada saat pertama kali ditemukan, komputer digunakan terutama sebagai alat bantu untuk memproses hitung-menghitung. Dalam perkembangan selanjutnya, data yang harus ditangani bertambah banyak. Hal itu tentu menimbulkan persoalan baru, yakni bagaimana data yang sangat banyak bisa ditangani dan disajikan dengan cara lebih efisien dan efektif. Memang, komputer bisa mencetak hasil keluaran hingga berates-ratus halaman, bahkan beribu-ribu halaman jika diperlukan. Meskipun demikian, tentu akan sangat membosankan bila orang harus membaca laporan-laporan yang sangat panjang, yang tentu saja akan memakan banyak waktu. Kemungkinan terjadinya kesalahan menjadi lebih besar. Jelasnya, mereka yang membaca laporan-laporan tersebut harus benarbenar tahu arti sesungguhnya dari angka-angka yang tersaji di dalamnya. Untuk menangani masalah tersebut, dikembangkan satu alat bantu yang bisa dipakai untuk menyajikan data dalam jumlah yang sangat besar ke dalam sebuah bagan sehingga memudahkan pemahaman. Bahkan ada pepatah yang mengatakan bahwa sebuah gambar lebih bermakna dari satu juta angka. Keberadaan alat bantu tersebut, pada saat-saat tertentu dan untuk keperluan tertentu, menyebabkan penggunaan bagan lebih disukai dibandingkan bila hanya melihat deretan angka yang sangat membosankan. Sejalan dengan hal tersebut, para ahli komputer telah mengembangkan perangkat yang bisa membuat komputer semakin pandai, yakni dengan menambahkan kemampuan grafis. Dengan demikian, bisa dikatakan bahwa semua komputer kini memiliki kemampuan grafis. Kemudian, lahirlah apa yang disebut grafika komputer (computer graphics).

1|Page

Grafika komputer pada dasarnya adalah suatu bidang ilmu komputer yang mempelajari cara-cara untuk meningkatkan dan memudahkan komunikasi antara manusia dengan mesin (komputer) dengan jalan membangkitkan, menyimpan, dan memanipulasi gambar model suatu objek menggunakan komputer. Grafika komputer memungkinkan kita untuk berkomunikasi lewat gambar-gambar, bagan-bagan, dan diagram-diagram.

Dalam makalah ini kita akan melihat lebih banyak mengenai objek grafik yang bersifat lebih hidup dan lebih nyata. Kita akan lebih banyak berbicara dan mengulas masalah-masalah transformasi dari grafik 3 dimensi meliputi translasi, scaling, rotasi (sumbu x, y, dan z), sehingga gambar atau objek yang kita hasilkan bisa digunakan di berbagai jarak dan perubahan. Oleh karenanya diharapkan, dengan adanya pemodelan dan penggambaran dengan konsep yang seperti demikian, penyajian data dapat menjadi lebih mudah dipahami oleh karena bentuk penyajiannya yang jauh lebih menarik dan lebih hidup atau nyata. Sehingga target pencapaian utama dari sebuah alat pengolah data yang populer dengan istilahnya “komputer” bisa tercapai dengan maksimal, yakni mengolah data menjadi informasi yang mudah untuk dipahami dan dimengerti oleh masyarakat secara umum dan luas.

2|Page

PEMBAHASAN
A. PENDAHULUAN Matriks transformasi adalah matriks yang membuat sebuah objek mengalami perubahan, baik berupa perubahan posisi maupun perubahan ukuran. Matriks transformasi 3D dinyatakan dalam ukuran 4x4, di mana kolom ke-4 digunakan untuk menyediakan tempat untuk proses transformasi.
a11 a 21 A=  a31  a 41 a12 a 22 a32 a 42 a13 a 23 a33 a 43 a14  a 24   a34   a 44 

Transformasi 3D dapat dilakukan dengan menggunakan perkalian antara matriks transformasi dan vektor posisi dari setiap titik pada objek. Hasil transformasi ini masih berupa vektor. Untuk lebih mudah dalam perkalian matriks, maka dapat kita ciptakan matriks awal yaitu matriks identitas, sebagai berikut: Matriks Identitas :
1 0 I=  0  0 0 1 0 0 0 0 1 0 0 0  0  1

Dengan implementasi dalam program sbb: 3|Page

matriks identitas(void) { int i,j; matriks mat; for (i=0;i<4;i++) { for (j=0;j<4;j++) { if (i==j) mat.m[i][j] = 1; else

B.

TRANSLASI Translasi adalah perpindahan objek dari titik P(x,y) ke titik P’(x’,y’) secara linier. Dalam translasi 3D diperlukan tiga parameter yaitu pemindahan ke arah sumbu x, pemindahan ke arah sumbu y, dan pemindahan ke arah sumbu z. Tranlasi (dx,dy,dz) didefinisikan dengan: x’ = x+dy y’ = y+dy z’ = z+dy atau dapat ditulis dengan:
 x'  x  dx   y ' =  y  + dy         z '   z  dz       

Proses translasi dengan menggunakan operasi matriks dapat ditulis dengan:
x'   x + dx  1.x + 0. y + 0.z + dx .1  y '  y + dy  0.x +1. y + 0.z + dy .1  = =   z '   z + dz  0.x + 0. y +1.z + dz .1        1   1   0.x + 0. y + 0.z +1.1 

4|Page

1 0  0  0

0 1 0 0

0 0 1 0

dx  dy   dz   1

Sehingga matriks transformasi dari translasi:
1 0 T=  0  0 0 1 0 0 0 0 1 0 dx  dy   dz   1

Dengan implementasi dalam program sebagai berikut: matriks translasi(float dx, float dy, float dz) { matriks trans = identitas(); trans.m[0][3] = dx; trans.m[1][3] = dy; trans.m[2][3] = dz;

C.

SCALING Scaling m adalah perpindahan objek dari titik P ke titik P’ dimana jarak titik P’ adalah m kali titik P. Proses scaling dapat didefinisikan dengan: x’ = mx x y’ = my y z’ = mz z Proses scaling dengan menggunakan definisi vektor3D dapat dituliskan dengan:
 v1  mx  v 2 =  0    1   0    0 my 0 0v1  0v 2   1  1   

5|Page

x' mx .x  mx .x + 0. y + 0.z + 0.1  y ' my . y  0.x + my . y + 0.z + 0.1   = =   z '  mz .z  0.x + 0. y + mz .z + 0.1        1   1   0.x + 0. y + 0.z +1.1  mx 0  0  0 0 my 0 0 0 0 mz 0 0x  0 y    0 z    1 1 

Matriks transformasi dari scaling adalah:
mx 0 S=  0  0 0 my 0 0 0 0 mz 0 0 0  0  1

Dengan implementasi dalam program sebagai berikut: matriks scaling(float mx, float my, float mz) { matriks scale = identitas(); scale.m[0][0] = mx; scale.m[1][1] = my; scale.m[2][2] = mz;

D.

ROTASI TERHADAP SUMBU X

Rotasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar sebesar sudut θ , yang dapat digambarkan sebagai berikut: x’ = x y’ = y cos ( θ ) - z sin ( θ ) z’ = y sin ( θ ) + z cos ( θ ) Operasi rotasi sumbu x dapat dituliskan sebagai berikut:

6|Page

x 1.x + 0. y + 0.z + 0.1 x'      y '  y. cos( θ ) − z. sin( θ )  0.x + y. cos( θ ) − z. sin( θ ) + 0.1  =  =   z '   y. sin( θ ) + z. sin( θ )  0.x + y. sin( θ ) + z. cos( θ ) + 0.1       1 0.x + 0. y + 0.z +1.1 1      1 0  0  0 0 cos( θ ) sin( θ ) 0 0 − sin( θ ) cos( θ ) 0 0  x  0  y  =  0  z     1 1 

Maka matriks transformasi dari rotasi sumbu x adalah:
1 0 Rx =  0  0 0 cos( θ) sin( θ) 0 0 − sin( θ) cos( θ) 0 0 0  0  1

Dengan implementasi dalam program sebagai berikut: matriks rotasiX(float theta) { matriks rotate = identitas(); float cs = cos(theta); float sn = sin(theta);

rotate.m[1][1] = cs; rotate.m[1][2] = -sn; rotate.m[2][1] = sn;

7|Page

Gambar : Rotasi terhadap sumbu x

E.

ROTASI TERHADAP SUMBU Y

Rotasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar sebesar sudut θ , yang dapat digambarkan sebagai berikut: x’ = x cos ( θ ) + z sin ( θ ) y’ = y z’ = -x sin ( θ ) + z cos ( θ )

Operasi rotasi sumbu y dapat dituliskan sebagai berikut:
x'  x. cos( θ ) + z. sin( θ )   x. cos( θ ) + 0. y + z. sin( θ ) + 0.1   y '     y 0.x +1. y + 0.z + 0.1  = =   z '  − x. sin( θ ) + z. cos( θ ) − x. sin( θ ) + 0. y + z. cos( θ ) + 0.1       1 0.x + 0. y + 0.z +1.1 1       cos θ  0  − sin( θ )  0  0 1 0 0 sin( θ ) 0 cos( θ ) 0 0x  0 y    0 z    1 1 

8|Page

Maka matriks transformasi sumbu y adalah:
 cos θ  0 Rx =  −sin( θ)  0  0 1 0 0 sin( θ) 0 cos( θ) 0 0 0  0  1

Dengan implementasi dalam program sebagai berikut: matriks rotasiY(float theta) { matriks rotate = identitas(); float cs = cos(theta); float sn = sin(theta);

rotate.m[0][0] = cs; rotate.m[0][2] = sn;

Gambar : Rotasi terhadap sumbu y

F.

ROTASI TERHADAP SUMBU Z

9|Page

Rotasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar sebesar sudut θ , yang dapat digambarkan sebagai berikut: x’ = x cos ( θ ) – y sin( θ ) y’ = x sin( θ ) + y cos( θ ) z’ = z Operasi rotasi sumbu z dapat dituliskan sebagai berikut:
 x' x. cos( θ ) − y. sin( θ)  x. cos( θ) + y. sin( θ) + 0.z + 0.1  y ' x. sin( θ) + y. cos( θ) x. sin( θ) + y. cos( θ) + 0.z + 0.1  = =  z'     z 0.x + 0. y +1.z + 0.1       1 0.x + 0. y + 0.z +1.1 1       cos θ sin( θ)   0   0 − sin( θ) cos( θ) 0 0 0 0 1 0 0x  0 y    0 z    11 

Maka matriks transformasi sumbu z adalah:
 cos θ sin( θ) Rx =   0   0 −sin( θ) cos( θ) 0 0 0 0 1 0 0 0  0  1

Dengan implementasi dalam program sebagai berikut: matriks rotasiZ(float theta) { matriks rotate = identitas(); float cs = cos(theta); float sn = sin(theta);

rotate.m[0][0] = cs; rotate.m[0][1] = -sn;

10 | P a g e

Gambar : Rotasi terhadap sumbu z

Gambar : Rotasi terhadap sumbu x, y, dan z

G.

PERKALIAN MATRIKS Dalam transformasi posisi, selain menyediakan fungsifungsi untuk transformasi juga diperlukan beberapa pengolahan matriks, seperti penjumlahan matriks dan perkalian matriks. Perkalian matriks merupakan hal yang penting saat melakukan transformasi. Kami akan membahas 2 jenis perkalian matriks, yaitu: a. Perkalian Matriks dengan Matriks Perkalian transformasi. matriks Perkalian ini digunakan a dan untuk matriks operasi b akan transformasi dari objek 3D dan untuk menggabungkan matrik menghasilkan matriks c yang dirumuskan dengan:

11 | P a g e

Cij = ∑ aik bkj
k =0

3

Dimana i dan j bernilai 0 s/d 3. Implementasi perkalian matriks dengan matriks: matriks kalim (matriks a, matriks b) { int i,j,k; matriks c; for (i=0;i<4;i++) { for (j=0;j<4;j++) { c.m[i][j] = 0; for (k=0;k<4;k++) { c.m[i][j]+=a.m[i][k] * b.m[k][j]; b. Perkalian Matriks dengan Vektor Perkalian matriks ini digunakan untuk operasi transformasi dari objek 3D guna menghasilkan vektor baru dari titik objek yang ditransformasika. Perkalian matriks vektor a dan vektor b akan menghasilkan vektor c yang dirumuskan dengan:

Ci = ∑a ik bk
k =0

3

Dimana i bernilai 0 s/d 3. Implementasi perkalian matriks dengan vektor: vektor kali (matriks mat, vektor b) { int i,j; vektor c; for (i=0;i<4;i++) { c.v[i] = 0; for (j=0;j<4;j++) { c.v[i]+= mat.m[i][j] * b.v[j]; 12 | P a g e

PENUTUP
o Objek 3 dimensi adalah model struktur data yang menyatakan suatu gambar 3 dimensi dibentuk dan disusun, yang terdiri atas sekumpulan titik 3 dimensi (x, y, dan z) yang membentuk luasanluasan (face) yang digabungkan menjadi satu kesatuan. o Berbeda dengan sistem koordinat 2 dimensi, pada sistem koordinat 3 dimensi digunakan tiga buah nilai, yakni x, y, dan z. dimana z menyatakan kedalaman dari objek yang dibentuk. o o Sistem koordinat 3 dimensi sering disebut sebagai sistem koordinat ruang. Titik 3 dimensi merupakan elemen dasar dalam menggambar atau membentuk sebuah objek 3 dimensi yang mempunyai tiga nilai P(x,y,z). o o Transformasi titik dan objek 3 dimensi terdiri dari translasi, scaling, dan rotasi. Translasi adalah perpindahan objek dari titik P(x,y) ketitik P’(x’,y’) secara linier. Dalam translasi 3D diperlukan tiga parameter yaitu pemindahan ke arah sumbu x, pemindahan ke arah sumbu y, dan pemindahan ke arah sumbu z. o Scaling adalah perpindahan objek dari titik P ke titik P’ dimana jarak titik P’ adalah m kali titik P.

13 | P a g e

o

Rotasi adalah perpindahan objek dari titik P(x,y,z) ke titik P’(x’,y’,z’) yang berupa pemindahan berputar sebesar sudut θ .

o

Rotasi dalam hal ini ada 3 macam yaitu rotasi terhadap sumbu x, rotasi terhadap sumbu y, dan rotasi terhadap sumbu z.

o

Dalam melakukan proses transformasi, diperlukan proses perkalian antara matriks dengan matriks atau matriks dengan vektor untuk menentukan posisi (x, y, dan z) yang baru (setelah mengalami proses transformasi).

o

Implementasi penggambaran objek 3 dimensi dapat dilakukan dengan menggunakan bahasa pemograman Visual C++ dengan memakai library openGL.

14 | P a g e

DAFTAR PUSTAKA

Basuki, A dan Nana Ramadijanti. 2006. Grafika Komputer Teori dan Implementasi. Yogyakarta: Penerbit Andi Vince, John. 2006. Mathematics for Computer Graphics, Second Edition. London: Springer-Verlag http://www.nehe.gamedev.net. 7 April 2009. OpenGL Tutorial and Lessons http://www.scribd.com. 8 April 2009. OpenGL Programming Guide

15 | P a g e

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->