Upload
mdolysiregar
View
254
Download
2
Embed Size (px)
Citation preview
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
1/24
1
LAPORAN
KOMPUTER GRAFIK
Nama PraktikanNomor
Mahasiswa
Tanggal
Kumpul
Tanda tangan
Pratikan
Muhammad Doly Siregar 1214370439
Nama PenilaiTanggal
KoreksiNilai
Tanda tangan
Dosen
Indri Sulistianingsih, S.Kom
UNIVERSITAS PEMBANGUNAN PANCABUDI MEDAN
FAKULTAS TEKNIK
SISTEM KOMPUTER
2014
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
2/24
2
Daftar IsiDaftar Isi ...................................................................................................... i
Kata Pengantar ............................................................................................. iii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Tujuan. 1
Bab 2 Pengenalan Komputer Grafik
2.1Teori dasar ....................................................................................... 22.2Tujuan Praktikum .............................................................................. 22.3Prosedur Praktikum............................................................................... 2
Bab 3 Grafik Dua Dimensi
3.1Teori Dasar ...................................................................................... 33.2 Tujuan Praktikum ............................................................................ 3
3.3 Prosedur Praktikum ......................................................................... 3
Bab 4 Grafik Tiga Dimensi
4.1 Teori Dasar. 4
4.2 Tujuan Praktikum... 4
4.3 Prosedur Praktikum 4
Bab 5 Kesimpulan
5.1 Kesimpulan 5
5.2 Saran.. 5
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
3/24
3
KATA PENGANTAR
Segala puji dan syukur saya panjatkan kepada tuhan yang maha esa, karena atas berkat
dan limpahan rahmatnyalah maka saya dapat menyelesaikan praktikum serta laporan akhir
Komputer Grafik.
Adapun isi dari laporan akhir ini adalah kumpulan dari setiap laporan mingguan selama
praktikum berlangsung.Laporan ini di buat untuk syarat agar dapat mengikuti ujian di MataKuliah Komputer Grafik.
Melalui kata pengantar ini saya lebih dahulu meminta maaf dan memohon permakluman bila
mana isi makalah ini ada kekurangan dan ada tulisan yang saya buat kurang tepat atau kurang
lengkap dari pembahasan setiap mingguan.
Dengan ini saya mempersembahkan makalah ini dengan penuh rasa terima kasih dan semoga
allah SWT memberkahi makalah ini sehingga dapat memberikan manfaat.
Stabat 11 juni 2014
Muhammad Doly Siregar
1214370439
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
4/24
4
BAB I
PENDAHULUAN
1.1 Latar belakangGrafika komputer sangat penting hampir semua bidang kehidupan seiring dengan sangat
penting nya system komputer dalam berbagai kegiatan seperti sketsa gambar maupun
animasi dan lain-lain . Grafika komputer sudah mulai banyak di gemari mau di gunakan
untuk berbagai keperluan :
1. Menampilkan simulasi, yang dalam hal ini grafik yang dihasilakan berupa grafik dataatau grafik visual proses. Seperti dalam simulasi perempatan jalan, grafika komputer
digunakan untuk melakukan visualisasi secara detail bagaimana kedatangan unit
mobil,pengaturan lalu lintas dan semua item di dalam nya.
2. CAD (Computer Aidet Desaign). Satu program CAD yang paling banyak dalam duniateknik, yaitu AUTOCAD, dimana grafik komputer dapat menunjukkan rancangan
atau desain pola atau desain layout
3. Visualisasi analisis sains, yang dalam hal ini grafik komputer dapat digunakansebagai sarana untuk menunjukkan proses ilmiah.
4. Image processing atau pengolahan citra digital, yang dalam hal ini grafika komputerdapat digunakan misalnya seperti dalam coding (pemindahan data citra menjadi data
vector) yang banyak digunakan untuk keperluan
1.2 TujuanA. Mampu Membuat Gambar 2D dan 3DB. Mempelajari dasar-dasar pembuatan grafik dengan OpenGLC. Mengembangkan beberapa perangkat dasar untuk menggambar line ,polyline dan
polygon
D. Mengenal dan mulai menulis program untuk membuat gambar
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
5/24
5
Bab II
PENGENALAN KOMPUTER GRAFIK
2.1 Teori Dasar
Grafika komputer menghasilkan suatu gambar Materinya berisi teknik-teknik menggambar Hasilnya gambar Image processing mengolah suatu gambar Materinya berisi teknik memperbaiki dan menyajikan informasi dari gambar
hasilnya bisa gambar atau informasi
2.2 Tujuan Praktikum
Mengenal dan mulai menulis program untuk membuat gambar Mempelajari dasar-dasar pembuatan grafik dengan OpenGL Mengembangkan beberapa perangkat dasar untuk menggambar line, polyline dan
polygon.
2.3 Prosedur PraktikumMembuat program menggunakan aplikasi Microsoft Visual C++
yang telah dilengakapi dengan OpenGL
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
6/24
6
Praktikum
1. Menggambar Titik#include
void userdraw()
{
static int tick=0;void drawline(int x1, int y1, int x2, int y2);
glBegin (GL_POINTS);
glVertex2i(50,40);
glVertex2i(50,80);
glEnd();
}
void display(void)
{
//clear screenglClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);//Inisialisasi ToolkitglutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(200,200);glutCreateWindow("M Doly SIregar");
glClearColor(0.0,0.0,0.0,0.0);gluOrtho2D(0.,100.,0.,150.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
7/24
7
2. Jajargenjang#include
void userdraw()
{static int tick=0;void drawDot(int x,int y);
glBegin(GL_LINE_LOOP);
glVertex2i(20,20);
glVertex2i(60,80);
glVertex2i(140,80);
glVertex2i(100,20);
glEnd();
}
void display(void){
//clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char **argv)
{glutInit(&argc,argv);//Inisialisasi Toolkit
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("jajargenjang");
glClearColor(0.0,0.0,0.0,0.0);
gluOrtho2D(0.,160.,-20.,200.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();return 0;
}
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
8/24
8
BAB III
GRAFIK DUA DIMENSI
3.1Teori DasarObject 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).
3.2 Tujuan Praktikum
1 Mengenal dan mengerti konsep dasar 2D2. Dapat membuat dan menggambar objek 2D3. Dapat mengimplementasikan operasi-operasi yang dikarenakan pada objek 2D
3.3Prosedur Praktikum
Membuat program menggunakan aplikasi Microsoft Visual C++ yang telah dilengakapi
dengan OpenGL
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
9/24
9
Praktikum
1. Gambar 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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
10/24
10
batang[4]={{-5,-190},{-5,0},{5,0},{5,-190}};
color_t biru ={0,0,1};
fillPolygon(batang,4, biru);
drawPolygon(batang,4);
point2D_tpot[4]={{-60,-190},{60,-190},{30,-240},{-30,-240}};
color_t hitam ={0,0,0};
fillPolygon(pot,4, hitam);drawPolygon(pot,4);
point2D_t
pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-170},{-80,-170}};
color_t hitam3 ={0,0,0};
fillPolygon(pot2,4, hitam3);
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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
11/24
11
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(150,150);
glutInitWindowSize(640,480);
glutCreateWindow("Bunga Doly");
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(-300.,400.,-300.,300.);glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();return 0;
}
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
12/24
12
2. 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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
13/24
13
drawPolygon(tangga,4);
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_tpetaktengah2[4]={{100,70},{80,90},{280,90},{260,70}};
color_t kuning2 ={1,1,0};fillpolygon(petaktengah2, 4, kuning2);
drawPolygon(petaktengah2,4);
point2D_tpetaktengah3[4]={{80,90},{70,110},{290,110},{280,90}};
color_t kuning3 ={1,1,0};fillpolygon(petaktengah3, 4, kuning3);drawPolygon(petaktengah3,4);
point2D_tbatang2[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};fillpolygon(batang, 4, putih2);drawPolygon(batang,4);
point2D_tpetaktengah4[4]={{70,110},{70,120},{290,120},{290,110}};
color_t hitam3 ={0,0,0};fillpolygon(petaktengah4, 4, hitam3);
drawPolygon(petaktengah4,4);
point2D_tsegitiga[3]={{170,530},{180,580},{190,530}};
color_t kuning4 ={1,1,0};fillpolygon(segitiga, 3, kuning4);drawPolygon(segitiga,3);
point2D_tbayangbatang[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);
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
14/24
14
drawPolygon(bayangbatang2,4);point2D_ttanggatgh1[4]={{140,10},{140,50},{150,50},{150,10}};color_t hitam ={0,0,0};
fillpolygon(tanggatgh1, 4, hitam);drawPolygon(tanggatgh1,4);
point2D_ttanggatgh2[4]={{210,10},{210,50},{220,50},{220,10}};color_t hitam2 ={0,0,0};fillpolygon(tanggatgh2, 4, hitam2);
drawPolygon(tanggatgh2,4);
point2D_ttangga2[4]={{10,10},{50,50},{310,50},{340,10}};
drawPolygon(tangga2,4);
point2D_tpetaktengah11[4]={{110,50},{100,70},{260,70},{250,50}};drawPolygon(petaktengah11,4);
point2D_tpetaktengah22[4]={{100,70},{80,90},{280,90},{260,70}};drawPolygon(petaktengah22,4);
point2D_tpetaktengah33[4]={{80,90},{70,110},{290,110},{280,90}};drawPolygon(petaktengah33,4);
point2D_tbatang3[4]={{150,120},{170,520},{190,520},{210,120}};drawPolygon(batang3,4);
point2D_tanaktangga[4]={{150,40},{150,45},{210,45},{210,40}};
drawPolygon(anaktangga,4);
point2D_tanaktangga2[4]={{150,30},{150,35},{210,35},{210,30}};drawPolygon(anaktangga2,4);
point2D_tanaktangga3[4]={{150,20},{150,25},{210,25},{210,20}};drawPolygon(anaktangga3,4);
point2D_tanaktangga4[4]={{150,10},{150,15},{210,15},{210,10}};drawPolygon(anaktangga4,4);
}
void display(void){
//clear screen
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
15/24
15
glClear(GL_COLOR_BUFFER_BIT);userdraw();glutSwapBuffers();
}
int main(int argc, char **argv){glutInit(&argc,argv);//Inisialisasi ToolkitglutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowPosition(100,100);glutInitWindowSize(500,640);glutCreateWindow("Monas Aham");
glClearColor(0.0,0.0,1.0,0.0);gluOrtho2D(0.,350.,-5.,600.);
glutIdleFunc(display);glutDisplayFunc(display);
glutMainLoop();return 0;
}
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
16/24
16
BAB IV
GRAFIK TIGA DIMENSI
4.1 Teori Dasar
Sistem koordinat 3 dimensi, atau lebih dikenal dengan sistem koorsinat ruang,
mempunyai 3 parameter, yaitu x, y dan z yang dapat digambarkan sebagai berikut :
P(x,y,z)
Hadirnya sumbu z menyebabkan sistem koordinat ini menjadi lebih hidup, karena
efek jauh dekat menjadi terlihat.
4.2 Tujuan Praktikum
1. Mengenal dan mengerti konsep dasar 3D2. Dapat membuat dan menggambar objek 3D3. Dapat mengimplementasikan operasi-operasi yang dikarenakan pada objek 3D
4.3Prosedur PraktikumMembuat program menggunakan aplikasi Microsoft Visual C++ yang telah dilengakapi
dengan OpenGL
Setelah prosedur disiapkan, maka pemrogram bisa melanjutkan dengan, mulai dari proses
Compile hingga menjalankan program tersebut. Gambar yang dapat ditampilkan dengan
menggunakan grafik 3D dapat dilihat pada program dan gambar-gambar berikut
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
17/24
17
2. Menggambar Balok#include "GL/glut.h"#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) {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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
18/24
18
c.m[i][j] = 0; for (k=0;k
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
19/24
19
{0,1,2,3}},{4,{4,5,6,7}}}};for (i=0;i
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
20/24
20
3. Bintang#include "GL/glut.h"#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) {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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
21/24
21
}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;
}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
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
22/24
22
c.m[i][j] = 0;for (k=0;k
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
23/24
23
objek balok ={12,{{20,60,120},{10,0,70},{30,35,70},{70,20,70},{60,55,70},{70,100,110},{25,80,80},{5,120,110},{-5,70,80},{-40,54,110},{-10,30,70},{20,60,40}},20,{{3,{11,2,1}},{3,{11,2,3}},{3,{11,4,3}},{3,{11,5,4}},{3,
{11,6,5}},{3,{11,7,6}},{3,{11,8,7}},{3,{11,9,8}},{3,{11,10,9}},{3,{11,1,10}},{3,{0,2,1}},{3,{0,2,3}},{3,{0,4,3}},{3,{0,5,4}},{3,{0,6,5}},{3,{0,7,6}},{3,{0,8,7}},{3,{0,9,8}},{3,{0,10,9}},{3,{0,1,10}}}};for (i=0;i
8/12/2019 Laporan Komputer Grafik Muhammad Doly Siregar
24/24
24
BAB V
Kesimpulan
A.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 vector 3D agar gambar yang dihasilkan lebih sempurna.
3. Pada gambar 2 Dimensi memiliki kelebihan yaitu, gambar yang dirancang dapatdiberi 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
B. Saran
1. Dalam penulisan program grafik 2D dan 3D, titik koordinat harus ditentukan dengantepat agar gambar yang dihasilkan sempurna.
2. Pada grafik 2D penulisan proses program sangat bergantung pada titik sinus, cosinus,dan tangen.
3. Pada grafik 3D penulisan proses program sangat bergantung pada matriks, dan vectorserta gabungan dari grafik 2D.