komputer grafik weny
TRANSCRIPT
-
5/24/2018 komputer grafik WENY
1/35
LAPORAN
KOMPUTER GRAFIK
NAMA
PRAKTIKUM
NPM
MAHASISWA
KELAS TANDA
TANGAN
WENY
WULANDARI
1214370253 TI4C SORE
NAMA PENILAI TANGGAL
KOREKSI
NILAI TANDA TANGAN
Indri sulistianingsih.S,KOM
UNIVERSITAS PEMBANGUNAN PANCA BUDI
FAKULTAS TEHNIK
SISTEM KOMPUTER
2014
-
5/24/2018 komputer grafik WENY
2/35
KATA PENGANTAR
Grafika Komputer merupakan salah satu bidang ilmu komputer yang menakjubkan,
dan banyak digunakan untuk menyajikan secara visual berbagaiinformasi dari berbagai
disiplin ilmu yang lain. Penyajian informasi secara visualmenggunakan grafika komputer
untuk tujuan pemodelan, analisis, dan sintesisbanyak dijumpai antara lain pada bidang
kerekayasaan, arsitektur, kedokterandan yang berkaitan dengan entertainment.Berbicara
tentang grafika komputer tidak terlepas dari berbagai metode danalgorithma yang diperlukan
untuk membangkitkan gambar pada layar tampilan,dan cara pemanipulasian gambar tersebut
sesuai dengan kebutuhan pengguna.Dengan selesainya buku ini, penulis ingin mengucapkan
terima kasih kepadasemua pihak yang telah banyak membantu hingga terselesaikannya buku
ini,khususnya saudara Pramudyo Ananto yang dengan segenap perhatian dankomitmennya
telah menyunting dan memeriksa bab demi bab dari buku ini.Sebagai akhir kata, penulis
berharap agar buku ini dapat bermanfaat bagi parapembaca sekalian. Tak lupa, segala kritik
dan saran demi sempurnanya buku inisangat penulis harapkan.
Medan, Juni 2014
Penulis
ii
-
5/24/2018 komputer grafik WENY
3/35
DAFTAR ISI
HALAMAN JUDUL..............................................................................i
KATA PENGANTAR.......ii
DAFTAR ISI......iii
BAB I PENDAHULUAN ................. 1
1.1 Latar Belakang .......... .......1
1.2 Identifikasi masalah ................ .1
BAB II Landasan Teori tentang komputer grafik..................................................2
2.1 Komputer Grafik .................... 2
2.1.1 Pengertian komputer grafik ...........2
BAB III Hasil Percobaan / Praktikum....................................................... .3
3.1 Desain ....................................................................................3
3.3.1 Contoh Latihan fungsi dari primitive drawing .............3
3.3.2 Membuat objek 2D.......................................................20
3.3.3 Membuat objek 3D.......................................................23
BAB IVAnalisa Hasil Percobaan................................................................ 30
4.1 Tujuan ................................................................................... 30
BAB V PENUTUP...................................................................................31
5.1 Kesimpulan............................................................................31
5.2 Saran.......................................................................................31
DAFTAR PUSTAKA ............................................................................. 32
iii
-
5/24/2018 komputer grafik WENY
4/35
BAB I
PENDAHULUAN
1.1Latar BelakangDefinisidefinisi Grafik Komputer
Pertama : Proses untuk menciptakan suatu gambar berdasarkan deskripsi obyek maupun
latar belakang
Definisidefinisi Grafik Komputer
Pertama : Proses untuk menciptakan suatu gambar berdasarkan deskripsi obyek maupun
latar belakang ang terkandung pada gambar tersebut.
Kedua : tehnik untuk membuat gambar obyek sesuai dengan obyek tersebut di alam
nyata ( realism)
Kemajuan tehnologi pada saat ini memungkinkan manusia untuk tidak menggambar
menngunakan media kertas. Dengan adanya kebutuhan manusia yang semakin meningkat
dan keinginan untuk mendapatkan sebuah hasil yang bagus dan cepat,maka di buat
berbagai program aplikasi untuk dapat kemungkinan manusia menggambar melalui media
komputer.
1.2Identifikasi masalahidentifikasi masalah tentang menggambar grafik menggunaka program aplikasi grafik dan
bahasa pemograman,diantaranya sebagai berikut:
1. konsep dasar menggambar transformasi 2d grafik di dalam komputer2. fasilitas yang di gunakan untuk menggambar grafik3. perbandingan antara program aplikasi grafik dengan bahasa pemograman
-
5/24/2018 komputer grafik WENY
5/35
BAB II
LANDASAN TEORI TENTANG KOMPUTER GRAFIK
2.1 komputer grafik
2.1.1.Pengertian Grafika Komputer
Perkembangan grafika komputer menuntut para pengembang sistem aplikasi
grafikakomputer untuk dapat mengembangkan suatu informasi yang dilengkapi
denganvisualisasi dan animasi, agar dapat lebih mudah dipahami oleh pihak yang
menggunakansistem tersebut. Grafika komputer telah menunjukkan kemajuan yang pesat
dalampengembangan berbagai aplikasi untuk menghasilkan gambar.Grafika komputer
digunakan untuk menunjang berbagai bidang dengan teknologigrafika berbasis komputer.
Penggunaan grafika komputer telah lama digunakan dalambeberapa macam aplikasi,
diantaranya pendidikan, kedokteran, fisika, matematika,multimedia, dan lain-lain. Pada saat
ini grafika komputer sudah digunakan pada bidangsains, engineering, kedokteran, bisnis,
industri, pemerintahan, seni, hiburan, iklan,pendidikan, dan lain-lain. Oleh karena itu, sudah
semakin banyak pula bahasapemrograman yang dilengkapi dengan tools/library pembuatan
grafik Salah satutools/library pembuatan aplikasi grafik adalah OpenGL (Open Graphics
Library).OpenGL(Open Graphics Library) adalah suatu spefikasi grafik yang low-levelyang
menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, danlingkaran.
OpenGL digunakan untuk mendefinisikan suatu objek, baik objek 2 dimensimaupun objek 3
dimensi.OpenGL juga merupakan suatu antarmuka pemrograman aplikasi
(applicationprogramming interface (API) yang tidak tergantung pada piranti dan
platform yangdigunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows,
UNIX dansistem operasi lainnya. OpenGL pada awalnya didesain untuk digunakan pada
bahasapemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga
digunakandalam bahasa pemrograman yang lain seperti Java, Tc. Namun OpenGL di-
package secara berbeda-beda sesuai dengan bahasapemrograman yang digunakan. Oleh
karena itu, package OpenGL tersebut dapat di-download pada
situshttp://www.opengl.org sesuai dengan bahasa pemrograman yang akan digunakan.Grafika
komputer pada dasarnya adalah suatu bidang ilmu komputer yang mempelajaricara-cara
untuk meningkatkan dan memudahkan komunikasi antara manusia denganmesin (komputer)
dengan jalan membangkitkan, menyimpan, dan memanipulasi gambar
http://www.opengl.org/http://www.opengl.org/http://www.opengl.org/http://www.opengl.org/http://www.opengl.org/ -
5/24/2018 komputer grafik WENY
6/35
BAB III
HASIL PERCOBAAN/PRAKTIKUM
3.1 Desain
3.3.1 Contoh Latihan fungsi dari primitive drawing
1.syntax membuat pot bunga:
#include
#include
typedef struct
{
int x,y;
}point2D_t;
typedef struct
{
float r,g,b;
}color_t;
void setColor (color_t col)
{
glColor3f(col.r, col.g, col.b);
}
void drawPolygon(point2D_t pnt[],int n)
{
int i;
glBegin(GL_POLYGON);
for (i=0; i
-
5/24/2018 komputer grafik WENY
7/35
glEnd();
}
void fillPolygon (point2D_t pnt[], int n, color_t color)
{
int i;
setColor(color);
glBegin(GL_POLYGON);
for (i=0; i
-
5/24/2018 komputer grafik WENY
8/35
drawPolygon(pot2,4);
point2D_t
pot3[6]={{80,-160},{50,-160},{50,-190},{60,-190},{60,-170},{80,-170}};
color_t hitam2 ={0,0,0};
fillPolygon(pot3,4, hitam2);
drawPolygon(pot3,4);
static int tick=0;
point2D_t shape[360];
double srad,r;
for(int s=0; s
-
5/24/2018 komputer grafik WENY
9/35
//posisi layar
glutInitWindowPosition(150,150);
//ukuran layar
glutInitWindowSize(640,480);
//title windows
glutCreateWindow("Bunga Raflesia");
//warna back layar
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(-300.,400.,-300.,300.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
-
5/24/2018 komputer grafik WENY
10/35
2. syntax membuat gambar kubus 3D
#include
#include
struct point {
float x,y,z;
};
struct vektor {
float v[4];
};
struct matriks {
float m[4][4];
};
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) {
-
5/24/2018 komputer grafik WENY
11/35
point pnt;
pnt.x = vec.v[0];
pnt.y = vec.v[1];
pnt.z = vec.v[2];
return pnt;
}
matriks identitas(void) {
int i,j;
matriks mat;
for (i=0;i
-
5/24/2018 komputer grafik WENY
12/35
return rotate;
}
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
-
5/24/2018 komputer grafik WENY
13/35
matriks kalim (matriks a, matriks b) {
int i,j,k;
matriks c;
for (i=0;i
-
5/24/2018 komputer grafik WENY
14/35
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
-
5/24/2018 komputer grafik WENY
15/35
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);
glutCreateWindow("Point To Vektor");
glOrtho(-100.0f,100.0f,-100.0f,100.0f,-100.0f,100.0f);
glutIdleFunc(UserDraw);
glutDisplayFunc(UserDraw);
glutMainLoop();
}
-
5/24/2018 komputer grafik WENY
16/35
4. syntax membuat gambar monas#include
typedef struct
{
int x,y;
}point2D_t;
typedef struct
{
float r,g,b;
}color_t;
void setColor(color_t col)
{
glColor3f(col.r, col.g, col.b);
}
void drawPolygon(point2D_t pnt[],int n)
{
int i;
glBegin(GL_LINE_LOOP);
for (i=0; i
-
5/24/2018 komputer grafik WENY
17/35
}
void fillpolygon(point2D_t pnt[],int n,color_t color)
{
int i;
setColor(color);
glBegin(GL_POLYGON);
for (i=0; i
-
5/24/2018 komputer grafik WENY
18/35
point2D_t
petaktengah1[4]={{110,50},{100,70},{260,70},{250,50}};
color_t kuning ={1,1,0};
fillpolygon(petaktengah1, 4, kuning);
drawPolygon(petaktengah1,4);
point2D_t
petaktengah2[4]={{100,70},{80,90},{280,90},{260,70}};
color_t kuning2 ={1,1,0};
fillpolygon(petaktengah2, 4, kuning2);
drawPolygon(petaktengah2,4);
point2D_t
petaktengah3[4]={{80,90},{70,110},{290,110},{280,90}};
color_t kuning3 ={1,1,0};
fillpolygon(petaktengah3, 4, kuning3);
drawPolygon(petaktengah3,4);
point2D_t
batang2[4]={{160,510},{160,530},{200,530},{200,510}};
color_t hitam4 ={0,0,0};
fillpolygon(batang2, 4, hitam4);
drawPolygon(batang2,4);
point2D_t
batang[4]={{150,120},{170,520},{190,520},{210,120}};
color_t putih2 ={1,1,1};
-
5/24/2018 komputer grafik WENY
19/35
fillpolygon(batang, 4, putih2);
drawPolygon(batang,4);
point2D_t
petaktengah4[4]={{70,110},{70,120},{290,120},{290,110}};
color_t hitam3 ={0,0,0};
fillpolygon(petaktengah4, 4, hitam3);
drawPolygon(petaktengah4,4);
point2D_t
segitiga[3]={{170,530},{180,580},{190,530}};
color_t kuning4 ={1,1,0};
fillpolygon(segitiga, 3, kuning4);
drawPolygon(segitiga,3);
point2D_t
bayangbatang[4]={{160,530},{160,535},{200,535},{200,530}};
color_t putih3 ={1,1,1};
fillpolygon(bayangbatang, 4, putih3);
drawPolygon(bayangbatang,4);
point2D_t
bayangbatang2[4]={{200,510},{200,535},{203,535},{203,510}};
color_t putih4 ={1,1,1};
fillpolygon(bayangbatang2, 4, putih4);
drawPolygon(bayangbatang2,4);
point2D_t
-
5/24/2018 komputer grafik WENY
20/35
tanggatgh1[4]={{140,10},{140,50},{150,50},{150,10}};
color_t hitam ={0,0,0};
fillpolygon(tanggatgh1, 4, hitam);
drawPolygon(tanggatgh1,4);
point2D_t
tanggatgh2[4]={{210,10},{210,50},{220,50},{220,10}};
color_t hitam2 ={0,0,0};
fillpolygon(tanggatgh2, 4, hitam2);
drawPolygon(tanggatgh2,4);
point2D_t
tangga2[4]={{10,10},{50,50},{310,50},{340,10}};
drawPolygon(tangga2,4);
point2D_t
petaktengah11[4]={{110,50},{100,70},{260,70},{250,50}};
drawPolygon(petaktengah11,4);
point2D_t
petaktengah22[4]={{100,70},{80,90},{280,90},{260,70}};
drawPolygon(petaktengah22,4);
point2D_t
petaktengah33[4]={{80,90},{70,110},{290,110},{280,90}};
drawPolygon(petaktengah33,4);
point2D_t
-
5/24/2018 komputer grafik WENY
21/35
batang3[4]={{150,120},{170,520},{190,520},{210,120}};
drawPolygon(batang3,4);
point2D_t
anaktangga[4]={{150,40},{150,45},{210,45},{210,40}};
drawPolygon(anaktangga,4);
point2D_t
anaktangga2[4]={{150,30},{150,35},{210,35},{210,30}};
drawPolygon(anaktangga2,4);
point2D_t
anaktangga3[4]={{150,20},{150,25},{210,25},{210,20}};
drawPolygon(anaktangga3,4);
point2D_t
anaktangga4[4]={{150,10},{150,15},{210,15},{210,10}};
drawPolygon(anaktangga4,4);
}
void display(void)
{
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char **argv)
-
5/24/2018 komputer grafik WENY
22/35
{
glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(500,640);
glutCreateWindow("MONUMEN NASIONAL JAKARTA");
glClearColor(0.0,0.0,1.0,0.0);
gluOrtho2D(0.,350.,-5.,600.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
-
5/24/2018 komputer grafik WENY
23/35
3.3.2 Membuat Objek 2 Dimensi
OpenGL adalah suatu graphic library yang sebagian bersifat open source, dipakai padabanyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti
C++/Delphi.
Dikembangkan oleh Mark Kilgard. GLUT merupakan pengembangan dari OpenGL dimana
memiliki keunggulan sebagai berikut:
Mudah, portable window manager, menggunakan callback functionsuntuk menambahkan interaksi dari user.
Didesain untuk aplikasi dengan level kecil hingga menengah. Distribusi library bebas tetapi tidak open source.
Syntax Perintah OpenGL
Sintaks perintah OpenGL mengikuti aturan penulisan dari library dimana fungsi tersebut
berasal, format penulisan fungsi OpenGL adalah :
Semua perintah OpenGL menggunakan awalan gl diikuti dengan huruf kapital pada setiap
kata membentuk nama perintah (sebagai contoh glClearColor). Untuk mendefinisikan
konstanta diawali dengan GL_, dengan menggunakan huruf kapital dan garis bawah untuk
memisahkan kata (seperti GL_POLY_STIPPLE). Terkadang beberapa huruf dan angka
ditambahkan pada akhir perintah (seperti 3f pada glVertex3f). Dalam hal ini angka 3
menunjukkan berapa banyak argumen yang harus ada pada perintah tersebut dan akhiran
huruf f menunjukkan jenis datanya yaitu floating.
Library yang Berhubungan dengan OpenGLOpenGL menyediakan set perintah untuk menggambar dan semua penggambaran yang lebih
tinggi tingkatnya harus dilakukan dengan mengambil fungsi dasar dari perintah ini. Maka
dari itu dapat dibuat library itu sendiri di atas program OpenGL yang mempermudah
pemrograman lebih lanjut. Fungsi asli dari OpenGL sendiri selalu diawali dengan gl yang
terdapat pada library opengl32.dll dan file header gl.h. Sedangkan beberapa library yang telah
ditulis untuk menyediakan fungsi-fungsi tambahan pada OpenGL adalah :
-
5/24/2018 komputer grafik WENY
24/35
o OpenGL Utility Library (GLU) yang didalamnya terdapat sejumlah rutin yangmenggunakan level bawah dari perintah OpenGL. Rutin-rutin ini mempunyai
awalan glu. Library ini digunakan sebagai bagian dari implementasi OpenGL.
o OpenGL Extension untuk X-Windows yang menyediakan fungsi untukmenciptakan OpenGL context dan mengasosiasikannya dengan mesin yang
menggunakan X-Windows. Rutin-rutin ini mempunyai awalan glx.
o Auxiliary atau aux library terdapat pada library glaux.lib dan file headerglaux.h. Perintah yang akan digunakan selalu menggunakan awalan aux
o OpenGL Utility Toolkit (GLUT) adalah toolkit untuk sistem windows yangditulis oleh Mark Kilgard untuk menyembunyikan perintah API sistem
windows yang kompleks.
Sekarang kita coba membuat sebuah bangun segitiga 2D dengan menggunakan open-GL
Silahkan coppast syntax di bawah ini:
#include
#include
sintaks di atas adalah header dasar dan harus ada untuk dapat menjalankan GLUT, dan
standard Libarary.
void renderScene(void){
http://pendtium11.files.wordpress.com/2013/05/lat6.jpg -
5/24/2018 komputer grafik WENY
25/35
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-10.,10.,0.0);
glVertex3f(-10.,0.,0.0);
glVertex3f(0.,0.,0.0);
glEnd();
glFlush(); }
Sedangkan sintaks di atas adalah sintaks untuk membuat objek primitif 2 dimensi berbentuk
segitiga. Fungsi yang digunakan adalah GL_TRANGLES yang berfungsi untuk membuat
setiap 3 buah titik disambungkan menjadi satu sehingga terbentuk sebuah segitiga.
Sedangkan untuk glVertex3f(x,y) digunakan untuk membuat sebuah titik pada koordinat x
dan y.
void main(int argc, char **argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);glutCreateWindow("Pemrograman Grafis GLUT");
gluOrtho2D(-50.0,50.0,-50.0,50.0);
glutDisplayFunc(renderScene);
glutMainLoop(); }
Sedangkan pada fungsi void main adalah fungsi yang digunakan untuk menjalankan program
agar mampu menampilkan pada kanvas.
-
5/24/2018 komputer grafik WENY
26/35
3.3.3 Membuat objek 3 dimensi (boneka danboo)
Pada kali ini membuat objek 3 dimensi menggunakan openGL, yang jelas sarat dengan
koding.
Kali ini membuat boneka danboo. Sebenarnya cukup mudah, hanya peletakannya saja yang
memkan waktu.
Untuk menggambar objek ini dibutuhkan beberapa fungsi objek 3 dimensi yaitu :
1. glutSolidCube (digunakan untuk membuat objek kubus)2. glutSolidSphere (digunakan untuk membuat objek bola)3. glutSolidCone (digunakan untuk membuat objek kerucut)
Tidak lupa untuk mengatur letak masing" objek 3dimensi menggunakan :
1. glRotatef();2. glScalef();3. glTranslatef();
Berikut contoh scrip dan tampilan dari pembuatan boneka danboo 3dimensi menggunakan
OpenGL.
chek disk out:
Scrip:
#include
#include
intw=480, h=480, z=-20;
intx1=0, y1=0, sudut=0, z1=0, skalaX=0, skalaY=0;
voidrenderScene(void){
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
http://dwiheru18.blogspot.com/2013/04/membuat-objek-3-dimensi-boneka-danboo.htmlhttp://dwiheru18.blogspot.com/2013/04/membuat-objek-3-dimensi-boneka-danboo.html -
5/24/2018 komputer grafik WENY
27/35
//camera awal
glTranslatef(0,0,z);
glRotatef(sudut,x1,y1,z1);
//kaki kanan
glPushMatrix();
glRotatef(20,0,0,-1);
glTranslatef(0.1,-4,0);
glColor3f(0.8,0.55,0.3);
glScalef(1,2.5,1);
glutSolidCube(1.3);
glPopMatrix();
//kaki kiri
glPushMatrix();
glRotatef(0,1,0,1);
glTranslatef(1.2,-4,0);
glColor3f(0.8,0.55,0.3);
glScalef(1,2.5,1);
glutSolidCube(1.3);
glPopMatrix();
//badan
glPushMatrix();
glTranslatef(0,0,0);
glColor3f(0.8,0.6,0.3);
glScalef(2,3,2);
glutSolidCube(2);
glPopMatrix();
//baju
glPushMatrix();
glRotatef(60,0,0,1);
-
5/24/2018 komputer grafik WENY
28/35
glTranslatef(-0.7,-0.5,2.02);
glScalef(0.3,0.3,0.1);
glColor3f(0,1,0);
glutSolidCone(7.5,0,3,3);
glPopMatrix();
//tangan kanan
glPushMatrix();
glRotatef(80,0,0,1);
glTranslatef(-0.5,4,0);
glColor3f(0.8,0.55,0.3);
glScalef(1,3,1);
glutSolidCube(1.3);
glPopMatrix();
//Sendi Kanan
glPushMatrix();
glTranslatef(2.6,0,0);
glColor3f(1,0,0);
glScalef(1,1,1);
glutSolidSphere(1,100,100);
glPopMatrix();
//tangan kiri
glPushMatrix();
glRotatef(-80,0,0,1);
glTranslatef(0.5,4,0);
glColor3f(0.8,0.55,0.3);
glScalef(1,3,1);
glutSolidCube(1.3);
glPopMatrix();
//sendi kiri
glPushMatrix();
http://4.bp.blogspot.com/-5QC6LJpGX1Q/UYBoVuw2neI/AAAAAAAAAFo/v-4z_N4XonQ/s1600/Capture.PNGhttp://4.bp.blogspot.com/-5QC6LJpGX1Q/UYBoVuw2neI/AAAAAAAAAFo/v-4z_N4XonQ/s1600/Capture.PNGhttp://4.bp.blogspot.com/-5QC6LJpGX1Q/UYBoVuw2neI/AAAAAAAAAFo/v-4z_N4XonQ/s1600/Capture.PNG -
5/24/2018 komputer grafik WENY
29/35
glTranslatef(-2.6,0,0);
glColor3f(1,0,0);
glScalef(1,1,1);
glutSolidSphere(1,100,100);
glPopMatrix();
//Kepala
glPushMatrix();
glTranslatef(0,3.5,0);
glColor3f(0.8,0.6,0.3);
glScalef(1.5,1,1);
glutSolidCube(5);
glPopMatrix();
//mata
glPushMatrix();
glTranslatef(-1.5,3.5,0.55);
glColor3f(0,0,0);
glutSolidSphere(2,100,100);
glPopMatrix();
//mata
glPushMatrix();
glTranslatef(1.5,3.5,0.55);
glColor3f(0,0,0);
glutSolidSphere(2,100,100);
glPopMatrix();
//mulut
glPushMatrix();
glRotatef(-65,1,0,0);
glTranslatef(0,-1.1,2.8);
glScalef(0.3,0.3,0.3);
glColor3f(0,0,0);
-
5/24/2018 komputer grafik WENY
30/35
glutSolidCone(3,3,3,3);
glPopMatrix();
glutSwapBuffers();
}
voidresize(intw1,inth1){
glViewport(0,0,w1,h1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,(float) w1/(float) h1, 1.0,300.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
voidmyKeyboard(unsignedcharkey, intx, inty){
if(key == 'x') {
x1=1;
y1=0;
z1=0;
sudut+=10;
}
elseif(key == 'y') {
y1=1;
x1=0;
z1=0;
sudut+=-10;
}
elseif(key == 't') {
y1=1;
x1=0;
z1=0;
sudut+=+10;
}
elseif(key == 'z') {
-
5/24/2018 komputer grafik WENY
31/35
y1=0;
x1=0;
z1=1;
sudut+=-10;
}
}
voidmySpecialKeyboard(intkey, intx, inty){
switch(key){
caseGLUT_KEY_UP:
z+=5;
break;
caseGLUT_KEY_DOWN:
z-=5;
break;
}
}
voidinit(){
glClearColor(0,0,0,1);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0,(GLdouble) w/(GLdouble) h, 1.0,300.0);
glMatrixMode(GL_MODELVIEW);
}
voidtimer(intvalue){
glutPostRedisplay();
glutTimerFunc(50,timer,0);
}
voidmain (intargc, char**argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_DEPTH| GLUT_RGBA);
-
5/24/2018 komputer grafik WENY
32/35
glutInitWindowPosition(100,100);
glutInitWindowSize(w,h);
glutCreateWindow("kelompok 20");
gluOrtho2D(-w/2,w/2,-h/2,h/2);
glutDisplayFunc(renderScene);
glutReshapeFunc(resize);
glutKeyboardFunc(myKeyboard);
glutSpecialFunc(mySpecialKeyboard);
glutTimerFunc(1,timer,0);
init();
glutMainLoop();
}
-
5/24/2018 komputer grafik WENY
33/35
BAB IV
ANALISA HASIL PERCOBAAN
4.1 TUJUAN
1. mendeskripsikan pengertian, kegunaan dan ruang linkup transformasi di dalamkomputer grafik
2. mengkaji beberapa pembuatan grafik menggunkan bahasa pemograman menggunakanbahassa aplikasi dan bahasa pemograman
3. mengevaluasi makalah ini yang terangkum dalam ringkasan kesimpulan
-
5/24/2018 komputer grafik WENY
34/35
BAB V
PENUTUP
5.1 KESIMPULAN
1. Dari program tersebut, dapat ditampilkan gambar titik dan garis yang digabungkanagar menghasilkan gambar 2 dimensi dan 3 dimensi.
2. Dalam pembuatan grafik 3 dimensi ada hal yang perlu dilakukan yaitu, mengubahtitik 3D menjadi vektor 3D agar gambar yang dihasilkan lebih sempurna.
3. Pada gambar 2 Dimensi memiliki kelebihan Pada gambar 2 Dimensi memilikikelebihan yaitu, gambar yang dirancang dapat diberi warna sesuai dengan RGB (Red,
Green, Blue).
4. Gambar yang dihasilkan pada grafik 2D dapat juga diberi efek-efek, seperti gambaryang dapat melayang pada tampilan layarnya.
5.2 Saran
1. Dalam penulisan program grafik 2D dan 3D,titik koordinat harus ditemukandengan tepat agar gambar yang dihasilkan sempurna.
2.
Pada garfik 2D penulisan proses program sangat bergantung pade titik sinus,cosinus, dan tangen.
3. Pada grafik 3D penulisan proses program sangat bergantung pada matriks danvektor serta gabungan dari grafik 2D.
-
5/24/2018 komputer grafik WENY
35/35
DAFTAR PUSTAKA
1. http://titi-nyunyun.blogspot.com/2011/10/pemanfaatan-grafik-komputer-dan.html
2. http://chiaisadora.wordpress.com/2011/10/11/contoh-aplikasi-grafik-komputer-dan-
pengolahan-citra/
3. http://nzsha1104.wordpress.com/2011/10/08/grafik-komp-pengolahan-citra-dalam-
kehidupan-sehari-hari/
4. http://irnieirindra.blogspot.com/2011/10/aplikasi-grafik-komputer-dan-pengolahan.html