Laporan Praktikum Komputer Grafik

34
LAPORAN PRAKTIKUM KOMPUTER APLIKASI Nama Nomor Tanggal Tanda tangan Praktikum Mahasiswa Kumpul Praktikum Andronius Perangin-angin 1214370192 12-Juny-2014 Universitas Pembangunan Panca Budi Fakultas Teknik Jurusan Sistem Komputer Medan,12 juny 2014 Kelas TI4-SORE D Nama Penilai Tanggal Nilai Tanda tangan Nama Dosen Koreksi Dosen Pengampu

description

Nama : Andronius Perangin-anginNPM : 1214370192Kelas : TI4-SORE D

Transcript of Laporan Praktikum Komputer Grafik

Page 1: Laporan Praktikum Komputer Grafik

LAPORAN PRAKTIKUM

KOMPUTER APLIKASI

Nama Nomor Tanggal Tanda tangan

Praktikum Mahasiswa Kumpul Praktikum

Andronius

Perangin-angin

1214370192 12-Juny-2014

Universitas Pembangunan Panca Budi

Fakultas Teknik

Jurusan Sistem Komputer

Medan,12 juny

2014

Kelas

TI4-SORE D

Nama Penilai Tanggal Nilai Tanda tangan

Nama Dosen Koreksi Dosen

Pengampu

Page 2: Laporan Praktikum Komputer Grafik

Daftar Isi

Daftar isi……………………………………………………………………………………..

Kata penghantar…………………………………………………………………………….

BAB I Pendahuluan…………………………………………………………………………

I.1 Umum…………………………………………………………………………….

I.2 Latar Bekalang…………………………………………………………………..

I.3 Tujuan Praktikum…………………………………………………………........

BAB II LANDASAN TEORI TENTANG KOMPUTER GRAFIK…………………….

II.1 Sistem Koordinat Dua Dimensi………………………………………………..

II.1.2 Titik / Pixel……………………………………………………………………

II.1.3 Garis…………………………………………………………………………..

II.1.4 Poligon………………………………………………………………………...

II.2 Teori Grafika Komputer Tiga Dimensi……………………………………….

II.2.1 Sistem Koordinat Tiga Dimensi……………………………………………..

II.2.1.1 Sistem Koordinat Cartesian Tiga Dimensi……………………………….

II.2.1.2 Sistem Koordinat Spheris………………………………………………..

II.2.2 Refleksi……………………………………………………………………..

II.2.3 Proyeksi…………………………………………………………………….

II.2.3.1 Proyeksi Paralel……………………………………………………………

II.2.3.2 Proyeksi Perspektif………………………………………………………..

II.2.4 Kamera Model……………………………………………………………..

II.2.5 Model Layar………………………………………………………………..

II.2.6 Pemotongan (Clipping)…………………………………………………….

Page 3: Laporan Praktikum Komputer Grafik

BAB III HASIL PERCOBAAN /PRAKTIKUM…………………………………………

III.1.1 Contoh latihan fungsi dari primitive drawing…………………………….

BAB IV ANALISA HASIL PERCOBAAN………………………………………………

IV.1 Pendahuluan…………………………………………………………………..

Kesimpulan dan saran……………………………………………………………..

Page 4: Laporan Praktikum Komputer Grafik

KATA PENGANTAR

Puji dan Syukur kami panjatkan ke Hadirat Tuhan Yang Maha Esa, karena berkat limpahan

Rahmat dan Karunia-nya sehingga kami dapat menyusun laporan ini dengan baik dan tepat

pada waktunya. Dalam laporan ini kami membahas mengenai 2 dimensi dan 3 dimensi

Laporan ini dibuat dengan berbagai observasi dan beberapa bantuan dari berbagai pihak

untuk membantu menyelesaikan tantangan dan hambatan selama mengerjakan laporan ini.

Oleh karena itu, kami mengucapkan terima kasih yang sebesar-besarnya kepada semua

pihak yang telah membantu dalam penyusunan laporan ini.

Kami menyadari bahwa masih banyak kekurangan yang mendasar pada laopran ini. Oleh

karena itu kami mengundang pembaca untuk memberikan saran serta kritik yang dapat

membangun kami. Kritik konstruktif dari pembaca sangat kami harapkan untuk

penyempurnaan laporan selanjutnya.

Akhir kata semoga laporan ini dapat memberikan manfaat bagi kita sekalian.

Medan, 12 Juni 2014

Hormat kami,

Tim Penulis

Page 5: Laporan Praktikum Komputer Grafik

BAB I

PENDAHULUAN

I.1 Umum

Microsoft visual studio merupakan sebuah perangkat lunak lengkap(suite) yang

dapat digunakan untuk melakukan pengembangan aplikasi,baik aplikasi bisnis,aplikasi

personal,ataupun komponen aplikasinya,dalam bentuk aplikasi console,aplikasi

windows,ataupun aplikasi web.

Visual studio mencangkup compiler,SDK,integrated,development environment(IDE),dan

dokumentasi(umumnya berupa MSDN library)

Microsoft visual studio dapat digunakan untuk mengembangkan aplikasi dalam native code

(dalam bentuk bahasa mesin yang berjalan di atas windows)

Selain itu,visual studio juga dapat digunakan untuk mengembangkan aplikasi

Silverlight,aplikasi windows mobile(yang berjalan di atas .NET compact framework).

Page 6: Laporan Praktikum Komputer Grafik

I.2 Latar Belakang

Secara umum kita belajar visual C++ agar setiap mahasiswa/i dapat mengerti

bahasa pemograman C++ itu sediri,bagaimana cara menjalankannya,dan arti dari bahasa

program itu.

Misalnya program 2D ini adalah merupakan dimensi panjang dan lebar dalam satu bidang

datar, jadi hanya ada panjang dan lebar saja tanpa adanya dimensi tebal. Bidang dua

dimensi dapat digambarkan dengan sumbu X dan Y. Agar dapat tampil dengan sempurna,

gambar yang akan ditampilkan dengan teknik ini harus memiliki nilai koordinat x dan y

minimum 0 dan maksimum sebesar resolusi yang digunakan.contoh 2D adalah Line,

Circle, arc, polygon, text,section, rectangle, ellips, star, helix sedangkan 3D adalah

Merupakan adanya dimensi tebal pada gambar sehingga menjadikan gambar jauh lebih

nyata dari pada gambar dua dimensi. Biasanya bidang tiga dimensi dinyatakan dengan

sumbu X Y dan Z. Konsep tiga dimensi atau 3D menunjukkan sebuah objek atau ruang

memiliki tiga dimensi geometris yang terdiri dari: kedalaman, lebar dan tinggi. Contoh tiga

dimensi suatu objek / benda adalah bola, piramida atau benda spasial seperti kotak sepatu

Page 7: Laporan Praktikum Komputer Grafik

I.3 Tujuan Praktikum

Tujuan praktikum ini agar mahasiswa/i dapat mengerti dan memahami program

C++ itu supaya dapat megembangkannya didalam kampus ataupun diluar kampus,

Page 8: Laporan Praktikum Komputer Grafik

BAB II

LANDASAN TEORI TENTANG KOMPUTER GRAFIK

II.1 Teori Dasar Grafika Komputer

Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer,yang akan

digunakan dalam pembahasan teknik environment mapping

II.1.1 Sistem Koordinat Dua Dimensi

Sistem koordinat digunakan untuk membedakan posisi atau lokasi suatu titik.

Sistem koordinat yang sering digunakan adalah sistem koordinat cartesian dua

dimensi seperti yang digambarkan pada gambar 2.1. Dalam sistem koordinat cartesian

dua dimensi digunakan 2 besaran (x,y). Sumbu x digunakan untuk memproyeksikan

panjang dan sumbu y untuk tinggi.

Gambar II.1.1 Sistem Koordinat Cartesian dua dimensi, dengan sumbu x

dan y

II.1.2 Titik / Pixel

Titik atau pixel (singkatan dari picture element) merupakan elemen penyusun

terkecil dari suatu objek dalam grafika komputer. Titik didefinisikan pada suatu posisi

(x,y) dalam koordinat cartesian. Gambar II.1.2 menunjukkan sebuah titik

pada posisi (3,4) dalam koordinat cartesian.

Page 9: Laporan Praktikum Komputer Grafik

Gambar II.1. 2 Titik dengan koordinat cartesian (3,4)

Titik memiliki atribut yaitu warna dari titik tersebut. Selain itu, titik juga memiliki

property yang terdiri dari posisi atau koordinat (x,y) titik tersebut.

Page 10: Laporan Praktikum Komputer Grafik

6

II.1.3 Garis

Garis merupakan persamaan matematika yang disusun oleh sekumpulan titik.

Suatu titik merupakan penyusun dari garis jika koordinat titik tersebut memenuhi

persamaan garis y = mx + c. Gambar 2.3 menunjukkan sebuah garis dengan

koordinat titik – titik ujung (2,2) dan (5,4).

Gambar II.1. 3 Garis dengan koordinat titik –

titik ujung (2,2) dan (5,4)

Garis memiliki atribut yang terdiri dari warna, tebal dan jenis dari garis

tersebut (gambar II.1.4). Garis juga memiliki property yang terdiri dari koordinat

dari titik – titik ujung garis tersebut (x1,y1) dan (x2,y2).

Gambar 2. 4 Jenis garis

Page 11: Laporan Praktikum Komputer Grafik

7

II.1.4 Poligon

Poligon merupakan bidang tertutup yang dibentuk oleh minimal 3 simpul (titik

sudut atau vertices) yang terhubung oleh garis (sisi atau edge). Garis – garis

tersebut tidak saling memotong. Contoh : segitiga, segi lima, segi delapan, dsb.

Gambar 2.5 menunjukkan sebuah poligon yang berupa segi lima.

Gambar II.1. 5 Poligon segi lima memiliki lima simpul dan

lima sisi

Poligon juga memiliki atribut seperti : tebal tepi, jenis tepi, warna tepi dan jenis

isi poligon (gambar 2.6). Property dari poligon terdiri dari koordinat titik – titik

sudut penyusunnya.

Gambar II.1. 6 Jenis isi poligon (hollow, solid,

patterned)

Page 12: Laporan Praktikum Komputer Grafik

8

II.2 Teori Grafika Komputer Tiga Dimensi

Teori grafika komputer tiga dimensi yang akan digunakan dalam pembahasan

teknik environment mapping akan dibahas pada bagian ini.

II.2.1 Sistem Koordinat Tiga Dimensi

Koordinat dua dimensi dirasakan kurang memadai dalam merepresentasikan

suatu objek tiga dimensi. Pada grafik tiga dimensi terdapat 2 buah sistem

koordinat, yaitu sistem koordinat cartesian tiga dimensi dan sistem koordinat

spheris.

II.2.1.1 Sistem Koordinat Cartesian Tiga Dimensi

Dalam sistem koordinat cartesian dua dimensi hanya terdapat 2 besaran saja

(sumbu x dan y). Sedangkan untuk memodelkan objek tiga dimensi yang memiliki

kedalaman, diperlukan 1 sumbu tambahan yaitu sumbu z, maka digunakanlah

sistem koordinat cartesian tiga dimensi. Sistem koordinat cartesian dibedakan

menjadi 2 yaitu, sistem koordinat tangan kanan dan sistem koordinat tangan kiri.

Sistem koordinat tangan kanan diilustrasikan dengan jari telunjuk tangan kanan

sebagai sumbu x diputar sebesar 90 derajat ke arah jari tengah tangan kanan

sebagai sumbu y, sehingga arah ibu jari tangan kanan sebagai sumbu z mendekati

pengamat (arah z positif). Gambar 2.7 menunjukkan orientasi sumbu koordinat

menggunakan sistem koordinat tangan kanan.

Gambar II. 7 Sistem Koordinat Tangan Kanan

Page 13: Laporan Praktikum Komputer Grafik

9

Sedangkan pada sistem koordinat tangan kiri dapat diilustrasikan dengan jari telunjuk

tangan kiri sebagai sumbu x diputar sebesar 90 derajat ke arah jari tengah tangan kiri

sebagai sumbu y, sehingga arah ibu jari tangan kiri sebagai sumbu z menjauhi

pengamat (arah z positif). Gambar 2.8 menunjukkan orientasi sumbu koordinat

menggunakan sistem koordinat tangan kiri. Dalam komputer grafik lebih banyak

digunakan sistem koordinat tangan kanan.

Gambar 2. 8 Sistem Koordinat Tangan Kiri

II.2.1.2 Sistem Koordinat Spheris

Pada sistem koordinat spheris, sebuah titik dianggap terletak pada permukaan

kulit bola yang memiliki jari – jari R, dan titik pusat bola berimpit dengan titik

pusat sistem koordinat. Dapat diambil sembarang titik, misalnya titik W sehingga

dikenal besaran colatitud dan azimuth. Colatitud ( ) adalah besarnya sudut yang

dibentuk antara sumbu z dan garis yang ditarik dari titik pusat ke titik W. Azimuth (

) adalah besarnya sudut antara bidang xz dengan bidang yang melewati titik W dan

sumbu z. Gambar 2.9 menunjukkan sistem koordinat spheris.

Gambar 2. 9 Sistem Koordinat Spheris

Dengan trigonometri, komponen koordinat spheris dapat dinyatakan dalam bentuk

R, , dan yaitu :

Wx = R sin ( ) cos ( ) Wy = R sin

( ) sin ( ) Wz = R cos ( )

Page 14: Laporan Praktikum Komputer Grafik

1010

II.2.2 Refleksi

Refleksi merupakan sifat material yang dapat mencerminkan bentuk objek –

objek di sekitarnya jika terkena sinar. Besarnya sudut pantul bergantung pada

besarnya sudut datang dari sinar dan bentuk permukaan dari objek yang terkena

sinar tersebut.

Secara umum refleksi dapat diilustrasikan seperti gambar 2.10 berikut :

Gambar II. 10 Vektor refleksi R , berasal dari vektor V , dengan garis

normal

N , dan dengan sudut

Rumus untuk menghitung vector R dengan besar sudut , vektor normal

N dan vektor asal V :

R = V - 2(V . N ) N

Page 15: Laporan Praktikum Komputer Grafik

1111

II.2.3 Proyeksi

Proyeksi merupakan proses mentransformasikan titik – titik di

sistem koordinat berdimensi n ke titik – titik di sistem koordinat dengan dimensi

yang lebih kecil dari n. Dalam grafik tiga dimensi, proyeksi didefinisikan

dengan pancaran sinar proyeksi yang berasal dari sebuah pusat proyeksi yang

dipancarkan sampai mengenai masing – masing titik dari objek tiga dimensi dan

memotong sebuah bidang proyeksi sehingga terbentuk hasil proyeksi.

Dua teknik proyeksi yang sering digunakan dalam grafik tiga dimensi yaitu

proyeksi perspektif dan proyeksi paralel. Perbedaan diantara kedua teknik itu

terletak pada letak pusat proyeksi terhadap bidang proyeksi. Pada proyeksi perspektif,

jarak pusat proyeksi ke bidang proyeksi terdefinisi. Pada proyeksi paralel jarak

pusat proyeksi ke bidang proyeksi tidak terdefinisi (sangat jauh).

Proyeksi perspektif menghasilkan efek visual yang menyerupai sistem

fotografi dan sistem visual pada manusia. Hal ini membuat proyeksi perspektif

menampilkan objek yang lebih nyata daripada objek yang dihasilkan oleh

proyeksi paralel. Proyeksi paralel biasanya digunakan untuk pengukuran yang

pasti. Karena perbandingan panjang objek di ruang tiga dimensi dengan panjang

objek di bidang proyeksi selalu sama.

II.2.3.1 Proyeksi Paralel

Proyesi paralel dapat diilustrasikan dengan sebuah titik pada bidang tiga

dimensi W(wx,wy,wz) diproyeksikan ke bidang dua dimensi dengan cara

menghapus salah satu komponen titiknya, misalnya komponen z (membuat nilai wz

sama dengan nol) sama dengan memproyeksikan titik W ke bidang xy. Dalam

hal ini bidang xy disebut dengan bidang pandang (viewplane). Proyeksi dari setiap

titik diperoleh dengan menjatuhkan sinar (disebut proyektor), dengan arah jatuh

sinar tegak lurus terhadap bidang proyeksi. Proyeksi ini disebut dengan proyeksi

orthogonal. Gambar 2.11 menggambarkan proyeksi paralel.

Gambar II. 11 Proyeksi Paralel

Page 16: Laporan Praktikum Komputer Grafik

1212

II.2.3.2 Proyeksi Perspektif

Proyeksi perspektif sering juga disebut frustrum projection, merupakan

sekumpulan sinar paralel yang diproyeksikan terhadap titik hilang (vanishing

point). Jika sekumpulan sinar sejajar dengan salah satu sumbu koordinat, maka

titik hilang disebut dengan titik hilang sumbu. Sedangkan jika ada titik hilang

sumbu yang berpotongan dengan bidang proyeksi maka disebut dengan titik hilang

utama. Objek yang berada di dekat view plane1 akan terlihat lebih besar bila

dibandingkan dengan objek yang letaknya jauh dari view plane, hal ini membuat

proyeksi perspektif lebih terlihat nyata. Gambar 2.12 menunjukkan proyeksi

perspektif.

Gambar 2. 12 Proyeksi Perspektif

View Plane adalah bidang pandang berbentuk piramid yang dihasilkan dari suatu proyeksi

Page 17: Laporan Praktikum Komputer Grafik

1313

II.2.4 Kamera Model

Dalam grafika komputer tidak semua objek dapat ditampilkan pada layar,

sehingga diperlukan suatu batasan objek – objek mana saja yang akan

ditampilkan. Objek – objek tersebut dibatasi dengan suatu daerah yang disebut

view volume.Untuk menampilkan ke layar maka harus dilakukan proyeksi terhadap

view volume pada view plane, hanya sebagian dari view plane yang akan

ditampilkan pada layar. Bagian dari view plane ini berbentuk bujur sangkar,

disebut dengan viewport seperti terlihat pada gambar 2.13 berikut ini :

Gambar 2. 13 Kamera Model dengan View Frustrum

View plane dibatasi oleh dua plane2

(Near dan Far), yang paralel terhadap view

plane ini disebut dengan view frustrum. Paralel plane yang dekat dengan mata

(E) disebut dengan near plane, sedangkan plane yang letaknya jauh dari mata

disebut dengan far plane.

Kombinasi dari lokasi kamera (eye point), view plane, viewport, dan view

frustrum disebut dengan kamera model. Kamera model merupakan suatu cara

untuk menempatkan kamera dan mengorientasikannya pada ruang tiga dimensi.

Plane adalah bidang yang berbentuk persegi panjang.

Page 18: Laporan Praktikum Komputer Grafik

1414

Salah satu cara yang digunakan dalam kamera model yaitu sistem koordinat arah

pandang.

Sistem koordinat arah pandang sering disebut dengan sistem koordinat uvn, sesuai

dengan nama – nama sumbu koordinat yang menjadi komponennya.

Sistem koordinat arah pandang dapat diilustrasikan dengan bidang pandang

berimpit dengan bidang uv, sedangkan mata terletak pada sumbu n. Hal ini mirip

dengan sistem koordinat cartesian, dimana mata terletak pada sumbu z, dan

bidang pandang pada bidang xy.

Gambar 2. 14 Sistem Koordinat Arah Pandang

Hubungan antara sistem koordinat arah pandang dengan sistem koordinat cartesian,

diilustrasikan pada gambar 2.14. Dari gambar tersebut, bidang uv merupakan bidang

pandang. Pada bidang pandang ini ditentukan sebuah titik yang disebut dengan titik

acuan pandang (view reference point, VRP), dan dianggap sebagai titik pusat dari

sistem koordinat arah pandang. Dalam sistem koordinat dunia, komponen vektor n

dinyatakan sebagai (nx,ny,nz). Dengan adanya sumbu ke arah n inilah sistem

koordinat uvn terbentuk.

Sumbu u dan sumbu v saling tegak lurus. Sedangkan vektor n mempunyai arah tegak

lurus terhadap bidang uv, dan karena sumbu u dan sumbu v terletak pada

Page 19: Laporan Praktikum Komputer Grafik

1515

bidang uv, maka jelaslah bahwa arah vektor n tegak lurus terhadap sumbu u dan

sumbu v.

Jika vektor n dan v diketahui, dengan mudah bisa dihitung komponen vektor u.

Karena arah vektor u tegak lurus pada vektor v dan n, maka vektor u bisa

dihitung dengan menggunakan cross product dari vektor n dan v, yaitu

u = n x v.

Setelah sistem koordinat arah pandang lengkap dengan berbagai komponennya,

maka perlu ditentukan batas jendela dan posisi matanya. Jendela terletak pada

sistem koordinat bidang pandang, dan batas – batasnya dinyatakan sebagai (jkr, jat,

jkn, jbw). Dari batas – batas tersebut terlihat bahwa pada arah mendatar,

jendela mempunyai batas – batas dari u = jkr sampai v = jkn, pada arah tegak, jendela

mempunyai batas dari u = jat sampai v = jbw.

Posisi mata, yaitu m(mu, mv, mn) dapat diletakkan pada sembarang tempat pada

sistem koordinat arah pandang. Posisi mata yang paling sering dipakai adalah

dengan menempatkannya pada sumbu n sejauh M dari VRP, yaitu pada posisi m = (0,

0,M).

Gambar II.15 berikut mengilustrasikan posisi jendela dan mata pada sistem

koordinat arah pandang.

Gambar 2.15 Posisi jendela dan mata

Page 20: Laporan Praktikum Komputer Grafik

1616

II.2.5 Model Layar

Pada grafika komputer, layar penampil memiliki titik pusat koordinat

(0,0) terletak pada posisi paling atas dan paling kiri. Sistem windowing pada

komputer grafik berbentuk kotak yang didefinisikan berupa koordinat (kiri,atas) dan

(kanan,bawah) seperti yang terlihat pada gambar 2.16 berikut :

Gambar 2. 16 Titik pusat koordinat pada layar penampil

Dari gambar tersebut, untuk posisi tengah (center), lebar layar dan tinggi layar dapat

dihitung sbb :

horizontal center = ( kiri + kanan ) / 2 vertical

center = ( atas + bawah ) / 2 lebar = kanan –

kiri

tinggi = bawah – atas

Dalam menampilkan gambar pada layar penampil, dilakukan perbandingan ukuran

window dengan kamera model. Sehingga jika dilakukan perubahan ukuran pada

kamera model, window dapat dengan mudah menyesuaikan ukurannya. Gambar

II.17 menunjukkan proses untuk menampilkan sebuah titik ke layar.

Page 21: Laporan Praktikum Komputer Grafik

Gambar 2. 17 Proses untuk menampilkan sebuah titik ke layar

II.2.6 Pemotongan (Clipping)

Kadang kala objek – objek yang hendak ditampilkan ada bagian yang

berpotongan dengan view volume sehingga perlu dilakukan proses pemotongan

(clipping). Gambar 2.18 menunjukkan proses clipping dan culling.

Gambar II. 18 Proses pemotongan (clipping) dilakukan pada garis di

tengah dan bawah, proses penghilangan (culled) garis di atas

II.3 Pemetaan Tekstur

Suatu objek akan terlihat lebih nyata dengan adanya tekstur yang

sesuai dengan objek tersebut dibandingkan dengan objek yang tidak memakai

tekstur /

Page 22: Laporan Praktikum Komputer Grafik

BAB III

HASIL PERCOBAAN /PRAKTIKUM

III.1.1 Contoh latihan fungsi dari primitive drawing

OpenGL Primitives, Drawing 2D Object

Pada tutorial 01 telah diberikan contoh program untuk merepresentasikan model obyek

segiempat 2D. OpenGL memiliki beberapa komponen dasar untuk merepresentasikan suatu

obyek. Komponen dasar tersebut, disebut sebagai OpenGL Geometric primitives. Gambar 2

menggambarkan semua OpenGL Geometric primitives yang tersedia.

Page 23: Laporan Praktikum Komputer Grafik

Setiap obyek harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut.

Sebagai contoh, obyek segiempat pada tutorial 01 tersebut dimodelkan dengan menggunakan

komponen dasar GL_POLYGON. Obyek tersebut dapat pula dimodelkan dengan komponen

dasar GL_TRIANGLES atau pun GL_QUAD.

Secara umum perintah-perintah dalam OpenGL memenuhi aturan sebagai berikut:

Dalam OpenGL, menggambar geometric primitives selalu dilakukan di antara fungsi

glBegin(PRIMITIVES)

// Fungsi Menggambar Primitives di sini

glEnd()

Setiap OpenGL geometric primitive dispesifikasi oleh urutan vertex-vertex-nya dalam bentuk

urutan koordinat homogenous. Koordinat homogenous adalah koordinat dalam bentuk ( x, y, z,

w ). Setiap primitive memiliki standar tentang bagaimana vertex-vertex diorganisasikan

Page 24: Laporan Praktikum Komputer Grafik

III.1.2 Contoh latihan fungsi dari 2D

#include <stdafx.h>

#include <stdlib.h>

#include <windows.h>

#include <glut.h>

int a=0,b=0,c=0,d=0;

int rumus1(int x1,int x2,int y1,int y2,int x){

int y=(x*(y2-y1)+x2*y1-x1*y2)/(x2-x1);

return y;

}

void tampilkan(){

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glClearColor(0,0,0,0);

glLoadIdentity();

glBegin(GL_QUADS);

glVertex2d(2+a,rumus1(2,3,4,6,2+a));

glVertex2d(6+b,rumus1(6,10,4,14,6+b));

glVertex2d(6+c,1);

glVertex2d(2,1+d);

glEnd();

glFlush();

Sleep(600);

if(1+a<3){

a++;

}

if(5+b<10){

b++;

}

if (6+c<15){

c++ ;

}

Page 25: Laporan Praktikum Komputer Grafik

if(1+d<2){

d++;

}

}

void init (void)

{

glMatrixMode(GL_PROJECTION);

gluOrtho2D(0,20,0,20);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

int main(int argc, char** argv)

{

glutInit(&argc, argv);

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);

glutInitWindowSize (250,250); //Ukuran window

glutCreateWindow ("2d");

glutDisplayFunc(tampilkan);

init ();

glutIdleFunc(tampilkan);

glutMainLoop();

return 0;

}

Page 26: Laporan Praktikum Komputer Grafik

III.1.3 Contoh latihan fungsi dari 3D

#include <GL/glut.h>

#include <math.h>

typedef

struct {

float x,y,z;

} point3D_t;

typedef

struct {

float v[4];

} vector3D_t;

typedef struct {

Page 27: Laporan Praktikum Komputer Grafik

int NumberofVertices;

short int pnt[32];

}face_t;

typedef struct {

int NumberofVertices;

point3D_t pnt[100];

int NumberofFaces;

face_t fc[32];

}object3D_t;

GLfloat vertices[][3] = {{0.0,0.0,1.50},

{0, 1,0.0},

{0.866, 0.5},

{0.866, -0.5},

{0, -1},

{-0.866, -0.5},

{-0.866 , 0.5},

{0.0,0.0,0.0}};

GLfloat normals[][3] = {{0.0,0.0,1.0},

{0, 1,0.0},

{0.866, 0.5},

{0.866, -0.5},

{0, -1},

{-0.866, -0.5},

{-0.866 , 0.5},

{0.0,0.0,0.0}};

GLfloat colors[][3] = {{0.0,0.0,0.0},

Page 28: Laporan Praktikum Komputer Grafik

{1.0,0.0,0.0},

{1.0,1.0,0.0},

{0.0,1.0,0.0},

{0.0,1.0,1.0},

{0.0,0.0,1.0},

{1.0,0.0,1.0},

{1.0,1.0,1.0}};

void DrawPoints(int nNumPoints, GLfloat ctrlPoints[][3])

{

int i;

glPointSize(2.0f);

glColor3f(0.0f, 0.0f, 1.0f);

glBegin(GL_POINTS);

for(i = 0; i < nNumPoints; i++)

glVertex2fv(ctrlPoints[i]);

glEnd();

}

void polygon(int x, int y, int z )

{

glBegin(GL_POLYGON);

glColor3fv(colors[x]);

glNormal3fv(normals[x]);

glVertex3fv(vertices[x]);

glColor3fv(colors[y]);

glNormal3fv(normals[y]);

glVertex3fv(vertices[y]);

glColor3fv(colors[z]);

glNormal3fv(normals[z]);

glVertex3fv(vertices[z]);

Page 29: Laporan Praktikum Komputer Grafik

glEnd();

}

void colorkubus()

{

polygon(1,7,2);

polygon(2,7,3);

polygon(3,7,4);

polygon(4,7,5);

polygon(5,7,6);

polygon(6,7,1);

polygon(1,0,2);

polygon(2,0,3);

polygon(3,0,4);

polygon(4,0,5);

polygon(5,0,6);

polygon(6,0,1);

}

static GLfloat theta[] = {0.0,0.0,0.0};

static GLint axis = 2;

static GLdouble viewer[]= {0.0, 0.0, 5.0};

void display(void)

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glLoadIdentity();

gluLookAt(viewer[0],viewer[1],viewer[2], 0.0, 0.0, 0.0, 1.0, 1.0, 0.0);

Page 30: Laporan Praktikum Komputer Grafik

colorkubus();

//DrawPoints(7, vertices);

glFlush();

glutSwapBuffers();

}

void myReshape(int w, int h)

{

glViewport(0, 0, w, h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluPerspective(45.0, w/h, 2.0, 20.0);

glMatrixMode(GL_MODELVIEW);

glEnable(GL_DEPTH_TEST);

glDisable(GL_CULL_FACE);

// white background

glClearColor(1.0f, 1.0f, 1.0f, 1.0f );

}

void

Page 31: Laporan Praktikum Komputer Grafik

main(int argc, char **argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);

glutInitWindowSize(500, 500);

glutInitWindowPosition(250, 200);

glutCreateWindow(".:OpenGL - 3Dku:.");

glutReshapeFunc(myReshape);

glutDisplayFunc(display);

glutMainLoop();

}

Page 32: Laporan Praktikum Komputer Grafik

BAB IV

ANALISA HASIL PERCOBAAN

IV.1 Pendahuluan

Setelah dilakukan pengujian di laboratorium, hasil dan data yang diperoleh diolah

dan dianalisis sedemikian rupa untuk didapatkan kesimpulan sesuai tujuan penelitian yang

telah ditetapkan. Hasil olah data disajikan secara singkat dan padat. Hasil pengolahan

data pelengkap yang lebih detil akan dilampirkan di bagian akhir laporan ini.

Kesimpulan dan saran

Grafika komputer akhir-akhir ini mulai dirasa sangat penting dan mencakup hampir semua

bidang kehidupan seiring dengan semakin pentingnya sistem komputer dalam berbagai kegiatan.

Grafika komputer merupakan gambar atau grafik yang dihasilkan oleh komputer. Teknik-teknik

yang dipelajari dalam grafika komputer adalah teknik-teknik bagaimana membuat atau

manciptakan gambar dengan menggunakan komputer, salah satunya adalah Teknik Transformasi

tiga dimensi yaitu suatu model atau bentuk atau teknik memindahkan atau mengubah nilai posisi

objek dalam sistem koordinat tiga dimensi. Pemindahan objek ini dapat diartikan sebagai

pemindahan titik. Transformasi tiga dimensi ini mencakup proses translasi, penskalaan, rotasi,

dll.

Dari laporan tugas ini diketahui cara-cara memindahkan polygon dengan GL Translatef,

memutar objek dengan GL Rotatef, membuat polygon tersebut lebih besar atau lebih kecil

dengan menggunakan GL Scalef. Di samping perintah-perintah yang kami sebutkan di atas,

masih banyak lagi objek-objek yang dapat dihasilkan dengan menggunkan transformasi tiga

dimensi.

Atas terselesainya laporan tugas ini semoga dapat memberi manfaat bagi yang membaca.

Namun, kami juga menyadari bahwa isi laporan tugas ini masih jauh dari sempurna.

Untuk waktu dan kesempatan yang diberikan oleh dosen pengajar tidak lupa kami ucapkan

banyak terima kasih.

Page 33: Laporan Praktikum Komputer Grafik

DAFTAR PUSTAKA

http://id.wikipedia.org/wiki/Visual_C%2B%2B

http://id.wikipedia.org/wiki/Microsoft_Visual_Studio

http://en.wikipedia.org/wiki/C%2B%2B

http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library

http://en.wikipedia.org/wiki/Visual_Nature_Studio

Page 34: Laporan Praktikum Komputer Grafik