Anda di halaman 1dari 33

1

LAPORAN PRAKTIKUM
KOMPUTER GRAFIK



Nama
Praktikan
Nomor
Mahasiswa
Tanggal
Kumpul
Tanda Tangan
Praktikan
Gita Citra Handayani 1214 370 197 12 Juni 2014




Nama
Penilai
Tanggal
Koreksi
Nilai
Tanda Tangan
Dosen
Indri Sulistianingsih, S.Kom





UNIVERSITAS PEMBANGUNAN PANCA BUDI
FAKULTAS TEKNIK
JURUSAN SISTEM KOMPUTER
MEDAN
2014




Kelas
TI 4-B Sore


i

KATA PENGANTAR

Assalamualaikum Wr. Wb

Puji dan syukur kehadirat Allah SWT karena berkat rahmat dan hidayah-
Nya penulis dapat menyelesaikan Laporan Praktikum ini. Tidak lupa shalawat dan
salam penulis curah limpahkan kepada Nabi Muhammad SAW beserta keluarga,
sahabat, dan umatnya hingga akhir zaman.

Laporan ini adalah kumpulan atau serangkaian praktikum yang dilakukan
dilaboratorium UNPAB yang bertujuan agar mahasiswa dapat lebih memahami
matakuliah Komputer Grafik dan menerapkan secara langsung ilmu yang
diperoleh selama mengikuti mata kuliah Komputer Grafik. Laporan ini juga dibuat
untuk memenuhi tugas akhir mata kuliah Komputer Grafik di semester 4.

Penulis menyadari bahwa dalam laporan praktikum ini masih terdapat
kekurangan. Untuk itu, penulis berharap kritik dan sarannya. Semoga laporan
praktikum ini dapat bermanfaat, khususnya bagi penulis dan bagi para pembaca.

Wassalamualaikum Wr.Wb.



Medan, Juni 2014
Penulis








ii

DAFTAR ISI

KATA PENGANTAR ........................................................................................ i
DAFTAR ISI ....................................................................................................... ii
BAB I : PENDAHULUAN
1.1 Umum ................................................................................................. 1
1.2 Latar Belakang .................................................................................... 1
1.3 Tujuan Praktikum ............................................................................... 2
BAB II : PEMBAHASAN
2.1 Landasan Teori .................................................................................... 3
2.1.1 Definisi Grafik Komputer ............................................................ 3
2.1.2 Definisi OpenGL .......................................................................... 5
2.1.3 Fungsi Glut................................................................................... 6
BAB III : HASIL PERCOBAAN/PRAKTIKUM
3.1 Contoh Latihan Fungsi dari Primitive Drawing .................................. 7
3.2 Contoh Latihan Fungsi dari 2D ........................................................... 9
3.3 Contoh Latihan Fungsi dari 3D ........................................................... 14
BAB IV : ANALISA HASIL PERCOBAAN
4.1 Analisis Fungsi Primitive Drawing ..................................................... 28
4.2 Analisis Fungsi 2D .............................................................................. 28
4.3 Analisis Fungsi 3D .............................................................................. 28
BAB V PENUTUP .............................................................................................. 29
DAFTAR PUSTAKA ......................................................................................... 30

1

BAB I
PENDAHULUAN
1.1 Umum
Komputer grafik ilmu yang mempelajari baik tentang komputasi,
perangkat keras (hardware) maupun perangkat lunak (software). Ilmu
komputer mencakup beragam topik yang berkaitan dengan komputer, mulai
dari analisis abstrak algoritma sampai subyek yang lebih konkret seperti bahasa
pemrograman, perangkat lunak, termasuk perangkat keras. Sebagai suatu
disiplin ilmu, Ilmu Komputer lebih menekankan pada pemrograman komputer,
dan rekayasa perangkat lunak (software), sementara teknik komputer lebih
cenderung berkaitan dengan hal-hal seperti perangkat keras komputer
(hardware). Namun demikian, kedua istilah tersebut sering disalah-artikan oleh
banyak orang.

1.2 Latar Belakang
Perkembangan ilmu pengetahuan dan teknologi saat ini sangatlah pesat.
Kehidupan ini sangat dipengaruhi oleh adanya informasi yang kemudian
informasi itu dapat diperoleh melalui ilmu pengetahuan dan teknologi.
Komputer merupakan salah satu teknologi yang paling pesat
perkembangannya. Pada saat pertama kali ditemukan, komputer digunakan
terutama sebagai alat bantu untuk mempercepat proses hitung menghitung.
Komputer dari generasi ke generasi mengalami perkembangan dalam hal
pengolahan data baik kapasitas maupun kecepatannya. Data yang diolah tidak
hanya berupa teks atau angka tetapi komputer dapat mengolah juga mengolah
gambar. Komputer yang memiliki piranti grafis untuk mengolah gambar atau
grafika disebut grafis komputer.
Dahulu teknologi grafis menggunakan pengolahan analog. Dewasa ini
pengolahan grafis cenderung memakai teknologi digital. Dalam teknologi ini
image analog yang ditangkap kamera digital dibagi menjadi unsur-unsur
gambar paling kecil lalu diubah menjadi bit dan disimpan dalam perangkat
digital.

2

Grafika komputer pada dasarnya adalah suatu bidang 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.
Istilah grafis komputer mencakup hampir semua yang ada di komputer
yang bukan hanya teks atau suara. Grafik komputer dan gambar yang
dihasilkan komputer menyentuh semua aspek. Komputer grafis yang dibangun
dengan baik dapat menyajikan grafik statistik kompleks dalam bentuk yang
lebih muda untuk memahami dan menafsirkannya. Berbagai alat dan fasilitas
yang tersedia pada komputer grafis memungkinkan pengguna dapat
memvisualisasikan data mereka dan juga komputer grafis banyak digunakan
dalam banyak hal.

1.1 Tujuan Praktikum
Mahasiswa dapat mempelajari komputer grafik beserta OpenGL yang
menyediakan perangkat-perangkat pembuatan grafik
Mahasiswa dapat membuat program untuk membangun grafik 2D dan
3D menggunakan bahasa pemrograman C++.
Mahasiswa dapat menerapkan prinsip-prinsip dasar grafika komputer
untuk keperluan visualisasi, animasi dan simulasi pada bidang ilmu
lainnya.








3

BAB II
PEMBAHASAN

2.1 Landasan Teori
2.1.1 Definisi Grafik Komputer
Grafik Komputer adalah suatu proses pembuatan, penyimpanan dan
manipulasi model dan citra. Model berasal dari beberapa bidang seperti fisik,
matematik, artistik dan bahkan struktur abstrak.Istilah Grafik Komputer
ditemukan tahun 1960 oleh William Fetter : pembentukan disain model cockpit
(Boeing) dengan menggunakan pen plotter dan referensi model tubuh manusia
3 Dimensi. Pengguna mengendalikan isi, struktur dan kemunculan objek serta
menampilkan citra melalui suatu komponen dasar visual feedback.
Grafik Komputer adalah grafis yang dibuat dengan menggunakan
komputer lebih umumnya adalah representasi piktorial dan manipulasi data
dengan komputer. Perkembangan komputer grafis telah membuat komputer
lebih mudah untuk berinteraksi dan lebih baik untuk memahami dan
menafsirkan berbagai jenis data. Perkembangan komputer grafis memiliki
dampak yang mendalam pada banyak jenis media dan telah merevolusi
permainan video animasi dan industri.
Istilah komputer grafis mencakup hampir semua yang ada di komputer
yang bukan merupakan teks atau suara. Hari ini hampir semua komputer
menggunakan beberapa grafis dan pengguna mengharapkan untuk
mengendalikan komputer mereka melalui ikon dan gambar, bukan hanya
dengan mengetik.
Istilah Computer Graphics memiliki beberapa arti, seperti representasi dan
manipulasi data piktorial oleh komputer dari berbagai teknologi yang
digunakan untuk membuat dan memanipulasi data gambar-gambar tersebut,
gambar yang dihasilkan, dan sub-bidang ilmu komputer yang mempelajari
metode untuk mensintesis digital dan memanipulasi konten visual, lihat studi
komputer grafis lebih lanjut. Grafik komputer dan gambar yang dihasilkan
komputer menyentuh banyak aspek kehidupan sehari-hari kita. Citra komputer

4

dapat ditemukan di televisi, di koran, laporan cuaca, dan masih banyak lagi.
Komputer grafis yang dibangun dengan baik dapat menyajikan grafik statistik
kompleks dalam bentuk yang lebih mudah untuk memahami dan
menafsirkannya. Seperti grafik yang digunakan untuk menggambarkan surat-
surat, laporan, tesis, dan bahan presentasi. Berbagai alat dan fasilitas yang
tersedia untuk memungkinkan pengguna untuk memvisualisasikan data
mereka, dan komputer grafis yang digunakan dalam banyak disiplin ilmu.

Komponen Dasar Sistem Grafik Interaktif :
Masukan : mouse, tablet dan stylus, peralatan force feedback, scanner, live
video stream, dll
Proses dan Penyimpanan
Keluaran : layar, printer berbasis kertas, perekam video, non-linear editor,
dll

Beberapa Manfaat Grafik Komputer Dalam Kehidupan Sehari-hari :
Bidang Perancangan
Pada bidang ini grafik komputer digunakan untuk membuat
berbagai desain dan model objek yang akan dibuat. Misalnya
digunakan untuk mendesain suatu arsitektur bangunan,desain
kendaraan dan lainnya.Menggunakan software desain grafis seperti
auto cad, 3D MAX semuanya akan berlangsung secara mudah dan
lebih spesifik dalam perancangan yang akan dibuat. Memperkecil
tingkat kesalahan sehingga akan menghasilkan suatu model yang sama
seperti aslinya.
Bidang Hiburan
Pada saat ini semua acara hiburan di Televisi banyak menggunakan
grafik komputer. Mulai dari film kartun, iklan di TV dan sampai acara
sinetron sekalipun sudah di selipkam oleh grafik komputer. Grafik

5

komputer disini berupa efek animasi yang dapat membuat film
semakin menarik.
Bidang Pendidikan
Grafik komputer pada pendidikan digunakan untuk
mempresentasikan objek-objek pada siswa secara nyata, dapat melalui
power point ataupun software lainnya. Dengan penggunakan bentuk
objek ini diharapkan siswa lebih nyata dalam menerima semua materi
yang telah diajarkan. tidak hanya teori saja tetapi sudah melihat bentuk
dan simulasinya. Bentuk ini dapat berupa penggambaran bidang,
ruang, grafik, gambar kerangka manusia, susunan tubuh manusia,dan
sebagainya.

2.1.2 Definisi OpenGL
OpenGL (Open Graphics Library) adalah spesifikasi standar yang
mendefinisikan sebuah cross-bahasa, cross-platform API untuk menulis
aplikasi yang menghasilkan komputer 2D dan 3D grafis. Terdiri dari lebih
dari 250 panggilan fungsi yang berbeda yang dapat digunakan untuk
menggambar tiga dimensi yang kompleks adegan-adegan dari primitif
sederhana. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada
tahun 1992 dan secara luas digunakan dalam CAD, Virtual Reality,
Visualisasi Ilmiah, Visualisasi Informasi, dan Simulasi Penerbangan.
OpenGL adalah Aplikasi software untuk hardware grafis, dirancang
sebagai antarmuka, efisien hardware independen untuk diterapkan pada
banyak platform hardware yang berbeda Intuitif antarmuka, prosedural
dengan C mengikat. Tidak ada perintah windowing dan tidak ada perintah
tingkat tinggi untuk menggambarkan model objek tiga dimensi. OpenGL
Utility Library (GLU) menyediakan banyak fitur pemodelan, seperti
permukaan quadric dan NURBS Curves dan permukaan.


6

2.1.3 FUNGSI GLUT
GLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis
menggunakan pemrograman yang bersifat prosedural. Di dalamnya terdapat
fungsi main loop yang diatur oleh GLUT dan looping yang terjadi dalam aplikasi
bertujuan untuk penanganan fungsi-fungsi callback sebagai input dari user seperti
fungsi redraw, mouse, keyboard, joystick, dan lain-lain.
Untuk pemrograman OpenGL menggunakan C++, diperlukan library tambahan
yaitu :
1. glut.h yang dicopy ke drive:\Program Files\Microsoft Visual Studio
2010\Vc\include\GL
2. glut32.lib yang dicopy ke drive:\Program Files\Microsoft Visual Studio
2010\Vc\lib
3. glut32.dll yang dicopy ke drive:\Windows\System














7

BAB III
HASIL PERCOBAAN

3.1 Contoh Latihan Fungsi Dari Primitive Drawing
Primitive Drawing
Penghasilan citra pada grafika komputer menggunakan primitif
grafik dasar. Primitif ini memudahkan untuk merender (menggambar
pada layar monitor) sebagaimana penggunaan persamaan geometrik
sederhana. Contoh primitif grafik dasar adalah :
o Titik
o Garis, Segiempat
o Kurva, Lingkaran, ellipse, kurva bezier, kurva lainnya
o Fill area
o Text

1. Menggambar Titik
#include <GL/glut.h>
void userdraw()
{ static int tick=0; void drawDot(int x,int y);
glBegin(GL_POINTS);
glVertex2i(100,50);
glVertex2i(300,50);
glVertex2i(200,100);
glEnd();
}
void display(void)
{

8

//clear screen glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
//inisialisasi Tookitl
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(200,200);
glutInitWindowSize(640,480);
glutCreateWindow("Menampilkan titik");
glClearColor(0.0,0.0,0.0,0.0);
gluOrtho2D(0.,640.,-240.,240);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Menghasilkan gambar seperti berikut :

9


Gambar 3.1 : Menggambar Titik

3.2 Contoh Latihan Fungsi Dari 2D
Object grafik 2D merupakan sekumpulan titik yang dihubungkan dengan
garis lurus baik berupa polyline, polygon atau kurva. Titik 2D mempunyai dua
nilai yaitu x dan y yang menyatakan jarak horizontal dan vertical dari titik
pusat sumbu koordinat (0,0). Dan dapat dipadukan dengan warna-warna yang
terdiri dari 3 elemen warna yaitu, RGB (Red, Green, Blue).

1.Menggambar Octagram
#include <GL/glut.h>
void userdraw()
{
static int tick=0;
void drawDot(int x,int y);

10

glBegin(GL_LINES);
glVertex2i(200,120);
glVertex2i(200,520);

glVertex2i(200,520);
glVertex2i(650,520);

glVertex2i(650,520);
glVertex2i(650,120);

glVertex2i(650,120);
glVertex2i(200,120);

glVertex2i(400,20);
glVertex2i(100,300);

glVertex2i(100,300);
glVertex2i(400,600);

glVertex2i(400,600);
glVertex2i(700,300);

glVertex2i(700,300);
glVertex2i(400,20);

glEnd();
}
void display(void)
{
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();

11

glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(400,400);
glutInitWindowSize(440,440);
glutCreateWindow("Gita Citra Handayani");
glClearColor(0.0f,1.0f,3.0f,0.0f);
gluOrtho2D(0.,740.,-540.,740.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Menghasilkan gambar seperti berikut :


Gambar 3.2 : Menggambar Octagram


12

2. Menggambar Bunga Kelopak 4
#include<GL/glut.h>
#include<math.h>

typedef struct{
float x,y;
} point2D_t;

void drawPolygon(point2D_t pnt[],int n)
{
int i;
glBegin(GL_POLYGON);
for (i=0; i<n; i++)
glVertex2f(pnt[i].x,pnt[i].y);

glEnd();
}

void userdraw()
{
Static int tick=0;
point2D_t shape[360];
double srad,r;
for(int s=0;s<360;++s)
{
srad=(s+tick)*3.14/180;
r=100*sin(5*srad);
shape [s].x= (float)(r*cos(srad));
shape [s].y= (float)(r*sin(srad));
}
drawPolygon(shape,360);


13

}

void display(void)
{
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
glColor4f(2.,0.,0.,2.);
userdraw();
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
//posisi layar
glutInitWindowPosition(100,100);
//ukuran layar
glutInitWindowSize(480,480);
//title windows
glutCreateWindow("Buat GARIS");
//warna back layar
glClearColor(4.0 , 4.0 , 0.0 , 0.0);
gluOrtho2D(-200.,200.,-200.,200.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

Menghasilkan gambar seperti berikut :



14









Gambar 3.3 : Menggambar Bunga 4 Kelopak

3.3 Contoh Latihan Fungsi Dari 3D
1. Menggambar 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 {
int NumberofVertices;
short int pnt[32];
}face_t;

typedef struct {

15

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},
{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}};

16


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]);
glEnd();
}

void colorkubus()
{
polygon(1,7,2);
polygon(2,7,3);
polygon(3,7,4);

17

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);

colorkubus();
//DrawPoints(7, vertices);

glFlush();
glutSwapBuffers();
}

void myReshape(int w, int h)
{

18

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
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();
}

19



Gambar 3.4 : Contoh 3D

2. Menggambar Kubus 3D

#include <GL/glut.h>
#include <math.h>

struct point {
float x,y,z;
};

struct vektor {
float v[4];
};

struct matriks {
float m[4][4];
};


20

struct face {
int jumtitikons;
int indextitik[40];
};

struct objek {
int jumtitik;
point titik[40];
int jumsisi;
face sisi[30];
};

matriks mat;
float theta=0.5;
vektor point2vektor(objek balok, int i) {
vektor vec;
vec.v[0] = balok.titik[i].x;
vec.v[1] = balok.titik[i].y;
vec.v[2] = balok.titik[i].z;
vec.v[3] = 1;
return vec;
}

point vektor2point(vektor vec) {
point pnt;
pnt.x = vec.v[0];
pnt.y = vec.v[1];
pnt.z = vec.v[2];
return pnt;
}

matriks identitas(void) {

21

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
mat.m[i][j] = 0;
}
}
return mat;
}

matriks translasi(float dx, float dy, float dz) {
matriks trans = identitas();
trans.m[0][3] = dx;
trans.m[1][3] = dx;
trans.m[2][3] = dx;
return trans;
}

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;
rotate.m[2][2] = cs;
return rotate;
}


22

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;
rotate.m[2][0] = -sn;
rotate.m[2][2] = cs;
return rotate;
}

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;
rotate.m[1][0] = sn;
rotate.m[1][2] = cs;
return rotate;
}

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];
}
}
return c;

23

}

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];
}
}
}
return c;
}

matriks titling = kalim(rotasiX(theta),rotasiY(-theta));
vektor cross (vektor a, vektor b) {
vektor c;
c.v[0] = a.v[1]*b.v[2]-a.v[2]*b.v[1];
c.v[1] = a.v[2]*b.v[0]-a.v[0]*b.v[2];
c.v[2] = a.v[0]*b.v[1]-a.v[1]*b.v[0];
c.v[3] = 1;
return c;
}
void DrawPolygon(objek obj)
{
int i,j;
float r,g,b;
for(i=0;i<obj.jumsisi;i++)
{
r=1.0f; g=0.0f; b=0.0f;

24

glBegin(GL_LINE_LOOP);
if (i==0) { r=1.0f; g=0.0f; b=0.0f; }
if (i==1) { r=0.0f; g=1.0f; b=0.0f; }
if (i==2) { r=0.0f; g=0.0f; b=1.0f; }
if (i==3) { r=1.0f; g=1.0f; b=0.0f; }
if (i==4) { r=1.0f; g=0.0f; b=1.0f; }
if (i==5) { r=0.0f; g=1.0f; b=1.0f; }
if (i==6) { r=0.5f; g=0.0f; b=1.0f; }
if (i==7) { r=0.5f; g=0.5f; b=0.5f; }
glColor3f(r,g,b);
for(j=0;j<obj.sisi[i].jumtitikons;j++)
{
glVertex3f(obj.titik[obj.sisi[i].indextitik[j]].x,
obj.titik[obj.sisi[i].indextitik[j]].y,
obj.titik[obj.sisi[i].indextitik[j]].z);
}
glEnd();
}
}

void DrawPolygon2D(objek obj)
{
int i,j;
float r,g,b;
for(i=0;i<obj.jumsisi;i++)
{
r=1.0f; g=0.0f; b=0.0f;
glBegin(GL_LINE_LOOP);
if (i==0) { r=1.0f; g=0.0f; b=0.0f; }
if (i==1) { r=0.0f; g=1.0f; b=0.0f; }
if (i==2) { r=0.0f; g=0.0f; b=1.0f; }
if (i==3) { r=1.0f; g=1.0f; b=0.0f; }

25

if (i==4) { r=1.0f; g=0.0f; b=1.0f; }
if (i==5) { r=0.0f; g=1.0f; b=1.0f; }
if (i==6) { r=0.5f; g=0.0f; b=1.0f; }
if (i==7) { r=0.5f; g=0.5f; b=0.5f; }
glColor3f(r,g,b);
for(j=0;j<obj.sisi[i].jumtitikons;j++)
{
glVertex2f(obj.titik[obj.sisi[i].indextitik[j]].x,
obj.titik[obj.sisi[i].indextitik[j]].y);
}
glEnd();
}
}

void gambarbalok() {
int i;
vektor hasil,HslKali;
objek Tbalok;
point HslTitik;
mat = titling;
objek balok =
{8,{{10,15,30},{30,15,30},{30,15,10},{10,15,10},{10,30,30},{30
,30,30},{30,30,10},{10,30,10}},
6,{{4,{0,1,5,4}},{4,{3,2,6,7}},{4,{0,3,7,4}},{4,{1,2,6,5}},{4,
{0,1,2,3}},{4,{4,5,6,7}}}};
for (i=0;i<8;i++) {
hasil = point2vektor(balok,i);
HslKali = kali(mat,hasil);
HslTitik = vektor2point(HslKali);
balok.titik[i] = HslTitik;
}


26

//DrawPolygon(balok);
//DrawPolygon2D(balok);
Tbalok = balok;
for (i=0;i<8;i++) {
hasil = point2vektor(balok,i);
HslKali = kali(rotasiZ(theta),hasil);
HslKali = kali(rotasiY(-theta),hasil);
HslKali = kali(rotasiX(theta),HslKali);
HslKali = kali(mat,hasil);
HslKali = kali(translasi(50,50,50),HslKali);
HslKali = kali(translasi(50,50,50),hasil);
HslTitik = vektor2point(HslKali);
Tbalok.titik[i] = HslTitik;
}
//DrawPolygon2D(Tbalok);
DrawPolygon(Tbalok);
}

void UserDraw() {
glClearColor(1.0f,1.0f,1.0f,0.0f);
glClear(GL_COLOR_BUFFER_BIT);
//glRotatef(0.1f,0.0f,1.0f,0.0f);
gambarbalok();

glutSwapBuffers();
}

void main(int argc,char **argv) {
glutInit(&argc,argv);
glutInitWindowPosition(20,20);
glutInitWindowSize(640,640);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

27

glutCreateWindow("Point To Vektor");
glOrtho(-200.0f,200.0f,-200.0f,200.0f,-200.0f,200.0f);
glutIdleFunc(UserDraw);
glutDisplayFunc(UserDraw);
glutMainLoop();
}

Menghasilkan gambar sebagai berikut :









Gambar 3.5 : Kubus 3D








28

BAB IV
ANALISA HASIL PERCOBAAN
4.1 ANALISIS FUNGSI PRIMITIVE DRAWING
Penghasilan citra pada komputer grafik menggunakan primitif grafik
dasar. Primitif ini memudahkan untuk merender (menggambar pada layar
monitor) sebagaimana penggunaan persamaan geometrik sederhana, Obyek
kompleks dapat dibuat dengan kombinasi dari primitif ini. Adapun contoh grafik
primitif yang lain adalah :
Poligaris yaitu urutan garis lurus yang saling terhubung.
Teks adalah bentuk bahasa tulisan dengan simbol-simbol tertentu. Teks
merupakan kumpulan lebih dari dua karakter.
4.2 ANALISIS FUNGSI 2D
Grafik komputer 2 dimensi biasa disebut dengan 2D atau bidang adalah
bentuk dari benda yang memiliki panjang dan lebar. Grafik 2 Dimensi merupakan
teknik penggambaran yang berpatokan pada titik koordinat sumbu x (datar) dan
sumbu y (tegak). 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.
Grafik komputer 2D adalah sebuah generasi gambar digital berbasis
komputer, yang kebanyakan mengambil objek-objek dua dimensi (2D). Model
Grafik 2D merupakan kombinasi dari model geometri (juga disebut sebagai grafik
vektor), gambar digital (raster graphics), fungsi matematika, dan sebagainya.
Komponen-komponen ini dapat dimodifikasi dan dimanipulasi oleh transformasi
geometri dua dimensi, seperti translasi, rotasi, dan diatasi
4.3 ANALISIS FUNGSI 3D
Obyek 3-D adalah sekumpulan titik-titik 3-D (x,y,z) yang membentuk
luasan-luasan (face) yang digabungkan menjadi satu kesatuan. Face adalah
gabungan titik-titik yang membentuk luasan tertentu atau sering dinamakan
dengan sisi.

29

BAB
PENUTUP
KESIMPULAN
Grafika komputer pada dasarnya adalah suatu bidang 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, bagan-bagan
dan diagram.

SARAN
Ada baiknya, Mahasiswa dapat mempelajari dan memahami komputer grafik
ini karena komputer grafik ini sangat bermanfaat dalam kehidupan sehari-hari
khususnya dibidang teknologi.












30

DAFTAR PUSTAKA

Iva. 2011. Pengantar Grafika Komputer. (Online).
http://blog.uinmalang.ac.id/ivageje/2011/05/17/pengantar-grafika-komputer/,
diakses tanggal 8 April 2013.

Novendi, Arif. 2011. Manfaat Grafik Komputer.
(Online).http://arifnovendi.blogspot.com/2011/01/manfaat-grafik-komputer.html,
diakses tanggal 8 April 2013

Nurmalia, Yekti. 2011. Pengantar grafika
komputer.(Online).http://blog.um.ac.id/yektinurmalia/2011/12/08/pengantargrafik
a-komputer/, diakses tanggal 8 April 2013.

R. S. Wright, N. Haemel, G. Sellers and B. Lipchak, OpenGL Superbible:
Comprehensive Tutorial and Reference, Fifth Edition, Pearson Education Inc.,
2011.

Read more: http://safemode.web.id/artikel/design/pengertian-konsep-dan-tool-
pendukung-grafik-komputer#ixzz33rwKTbO3

Anda mungkin juga menyukai