laporan komputer grafik muhammad doly siregar

Upload: mdolysiregar

Post on 03-Jun-2018

256 views

Category:

Documents


2 download

TRANSCRIPT

  • 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.