You are on page 1of 10

GRAFIKA KOMPUTER

LAPORAN UJIAN TENGAH SEMESTER

Oleh :
Abdur Rozaq (17051204078)

TI 2017 B
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SURABAYA
2019
Source code : void fillPolygon(Point2D_t pnt[], int n, color_t
color)
#include <GL/glut.h>
{
#include <math.h>
inti;

setColor(color);
typedefstruct
glBegin(GL_POLYGON);
{
for (i = 0; i< n; i++) {
float r;
glVertex2f(pnt[i].x, pnt[i].y);
float g;
}
float b;
glEnd();
} color_t;
}

typedefstruct
void gradatePolygon(Point2D_t pnt[], int n,
{
color_t color[])
float x, y;
{
} Point2D_t;
inti;

glBegin(GL_POLYGON);
void setColor(color_t col)
for (i = 0; i< n; i++) {
{
setColor(color[i]);
glColor3f(col.r, col.g, col.b);
glVertex2f(pnt[i].x, pnt[i].y);
}
}
void drawPolyline(Point2D_t pnt[], int n)
glEnd();
{
}
inti;

glBegin(GL_LINE_LOOP);
void userdraw() {
for (i = 0; i< n; i++) {

glVertex2f(pnt[i].x, pnt[i].y);
color_t grabiru1[3] = { {0.4,1,1},
} {0,0.8,1},{0,0.7,0.9} };

glEnd(); color_t grabiru2[3] = { {0.4,1,1},


{0.5,1,1},{0.7,1,1} };
}
color_t grabitu3[3] = { {0.5,1,1},
{0.7,1,1},{0.9,1,1} };
color_t grahijau1[4] = { { 0,1,1 }, fillPolygon(sayap3, 3, birumuda);
{0,0.8,1} ,{0,0.8,1},{0,0.2,1} };
setColor(putih);
color_t grahijau2[3] = { {0,0.2,1},
drawPolyline(sayap3, 3);
{0,0.6,1},{0,0.8,1} };

color_t grabiru4[3] = { {1,0,0.9},


{1,0,0.2},{1,0,0.3} }; Point2D_t sayap4[3] = { {-211,262},{-
117,203},{-214,178} };

setColor(magenta);
color_tabu = { 0.27,0.35,0.39 };
fillPolygon(sayap4, 3, magenta);
color_tputih = { 1,1,1 };
setColor(putih);
color_tkuning = { 1,0.85,0 };
drawPolyline(sayap4, 3);
color_tmerahmaroon = { 0.5,0,0 };

color_tmerah = { 1,0,0 };
Point2D_t sayap5[4] = { {-117,203},{-
color_thijau = { 0,1,0.5 };
118,102},{-216,71},{-214,178} };
color_tbirumuda = { 0,1,1 };
setColor(merah);
color_t magenta = { 1,0,1 };
fillPolygon(sayap5, 4, merah);
color_tbiru = { 0,0,1 };
setColor(putih);

drawPolyline(sayap5, 4);
Point2D_t sayap1[3] = { {-378,262},{-
314,283},{-316,151} };
Point2D_t sayap6[3] = { {-117,203},{-
gradatePolygon(sayap1, 3, grabiru1);
47,123},{-118,102} };
setColor(putih);
setColor(kuning);
drawPolyline(sayap1, 3);
fillPolygon(sayap6, 3, kuning);

setColor(putih);
Point2D_t sayap2[3] = { {-314,283},{-
drawPolyline(sayap6, 3);
211,262},{-316,151} };

setColor(hijau);
Point2D_t sayap7[4] = { {-47,123},{-
fillPolygon(sayap2, 3, hijau);
18,61},{-19,45},{-118,102} };
setColor(putih);
setColor(merahmaroon);
drawPolyline(sayap2, 3);
fillPolygon(sayap7, 4, merahmaroon);

setColor(putih);
Point2D_t sayap3[3] = { {-211,262},{-
drawPolyline(sayap7, 4);
214,178},{-316,151} };

setColor(birumuda);
Point2D_t sayap8[4] = { {-316,151},{- drawPolyline(sayap12, 4);
214,178},{-216,71},{-244,61} };

setColor(kuning);
Point2D_t sayap13[4] = { {-118,102},{-
fillPolygon(sayap8, 4, kuning); 19,45},{-20,33},{-125,31} };

setColor(putih); setColor(biru);

drawPolyline(sayap8, 4); fillPolygon(sayap13, 4, biru);

setColor(putih);

Point2D_t sayap9[3] = { {-316,151},{- drawPolyline(sayap13, 4);


244,61},{-288,46} };

setColor(abu);
Point2D_t sayap14[4] = { {-125,31},{-
gradatePolygon(sayap9, 3, grabiru2); 20,33},{-14,18},{-79,-88} };

setColor(putih); setColor(merahmaroon);

drawPolyline(sayap9, 3); fillPolygon(sayap14, 4,


merahmaroon);

setColor(putih);
Point2D_t sayap10[3] = { {-244,61},{-
216,71},{-218,31} }; drawPolyline(sayap14, 4);

setColor(biru);

fillPolygon(sayap10, 3, biru); Point2D_t sayap15[3] = { {-219,-15},{-


125,31},{-79,-88} };
setColor(putih);
setColor(abu);
drawPolyline(sayap10, 3);
gradatePolygon(sayap15, 3, grabiru4);

setColor(putih);
Point2D_t sayap11[3] = { {-244,61},{-
218,31},{-288,46} }; drawPolyline(sayap15, 3);

setColor(abu);

gradatePolygon(sayap11, 3, grabitu3); Point2D_t sayap16[4] = { {-238,-35},{-


219,-15},{-79,-88},{-207,-118} };
setColor(putih);
setColor(abu);
drawPolyline(sayap11, 3);
gradatePolygon(sayap16, 4,
grahijau1);
Point2D_t sayap12[4] = { {-216,71},{-
setColor(putih);
118,102},{-125,31},{-218,31} };
drawPolyline(sayap16, 4);
setColor(magenta);

fillPolygon(sayap12, 4, magenta);

setColor(putih);
Point2D_t sayap17[4] = { {-14,18},{- glVertex2f(-110, -250);
11,-21},{-39,-179},{-79,-88} };
glVertex2f(-139, -251);
setColor(merah);
glEnd();
fillPolygon(sayap17, 4, merah);

setColor(putih);
Point2D_t sayap22[3] = { {-155,-174},
drawPolyline(sayap17, 4); {-139,-251},{-180,-254} };

setColor(merah);

Point2D_t sayap18[3] = { {-207,-118}, fillPolygon(sayap22, 3, merah);


{-79,-88},{-155,-174} };
setColor(putih);
setColor(abu);
drawPolyline(sayap22, 3);
gradatePolygon(sayap18, 3,
grahijau2);
glColor3f(0.5, 0, 0);
setColor(putih);
glBegin(GL_POLYGON);
drawPolyline(sayap18, 3);
glVertex2f(-180, -254);

glVertex2f(-139, -251);
Point2D_t sayap19[3] = { {-79,-88},{-
119,-200},{-155,-174} }; glVertex2f(-133, -276);
setColor(hijau); glEnd();
fillPolygon(sayap19, 3, hijau);

setColor(putih); glColor3f(1, 0.85, 0);


drawPolyline(sayap19, 3); glBegin(GL_POLYGON);

glVertex2f(-139, -251);
Point2D_t sayap20[3] = { {-79,-88},{- glVertex2f(-110, -250);
39,-179},{-119,-200} };
glVertex2f(-133, -276);
setColor(kuning);
glEnd();
fillPolygon(sayap20, 3, kuning);

setColor(putih);
//TUBUH
drawPolyline(sayap20, 3);
glColor3f(0, 0, 1);

glBegin(GL_LINE_LOOP);
glColor3f(0, 0, 1);
glVertex2f(0, 100);
glBegin(GL_POLYGON);
glVertex2f(-18, 61);
glVertex2f(-155, -174);
glVertex2f(-19, 45);
glVertex2f(-119, -200);
glVertex2f(-20, 33);

glVertex2f(-14, 18); Point2D_t sayapkanan1[3] =


{ {378,262},{314,283},{316,151} };
glVertex2f(-11, -21);
setColor(abu);
glVertex2f(0, -138);
gradatePolygon(sayapkanan1, 3,
glVertex2f(0, 100);
grabiru1);
glVertex2f(18, 61);
setColor(putih);
glVertex2f(19, 45);
drawPolyline(sayapkanan1, 3);
glVertex2f(20, 33);

glVertex2f(14, 18);
Point2D_t sayapkanan2[3] =
glVertex2f(11, -21); { {314,283},{211,262},{316,151} };

glVertex2f(-0, -138); setColor(hijau);

glEnd(); fillPolygon(sayapkanan2, 3, hijau);

setColor(putih);

drawPolyline(sayapkanan2, 3);

glColor3f(1, 0, 0);

glBegin(GL_LINE_STRIP); Point2D_t sayapkanan3[3] =


{ {211,262},{214,178},{316,151} };
glVertex2f(-59, 198);
setColor(birumuda);
glVertex2f(-45, 218);
fillPolygon(sayapkanan3, 3,
glVertex2f(0, 100); birumuda);
glVertex2f(-59, 198); setColor(putih);
glEnd(); drawPolyline(sayapkanan3, 3);

glColor3f(1, 0, 0); Point2D_t sayapkanan4[3] =


glBegin(GL_LINE_STRIP); { {211,262},{117,203},{214,178} };

glVertex2f(59, 198); setColor(magenta);

glVertex2f(45, 218); fillPolygon(sayapkanan4, 3, magenta);

glVertex2f(0, 100); setColor(putih);

glVertex2f(59, 198); drawPolyline(sayapkanan4, 3);

glEnd();
Point2D_t sayapkanan5[4] =
{ {117,203},{118,102},{216,71},
{214,178} };
setColor(merah); setColor(putih);

fillPolygon(sayapkanan5, 4, merah); drawPolyline(sayapkanan9, 3);

setColor(putih);

drawPolyline(sayapkanan5, 4); Point2D_t sayapkanan10[3] =


{ {244,61},{216,71},{218,31} };

setColor(biru);
Point2D_t sayapkanan6[3] =
{ {117,203},{47,123},{118,102} }; fillPolygon(sayapkanan10, 3, biru);

setColor(kuning); setColor(putih);

fillPolygon(sayapkanan6, 3, kuning); drawPolyline(sayapkanan10, 3);

setColor(putih);

drawPolyline(sayapkanan6, 3); Point2D_t sayapkanan11[3] =


{ {244,61},{218,31},{288,46} };

setColor(abu);
Point2D_t sayapkanan7[4] =
{ {47,123},{18,61},{19,45},{118,102} }; gradatePolygon(sayapkanan11, 3,
grabitu3);
setColor(merahmaroon);
setColor(putih);
fillPolygon(sayapkanan7, 4,
merahmaroon); drawPolyline(sayapkanan11, 3);

setColor(putih);

drawPolyline(sayapkanan7, 4); Point2D_t sayapkanan12[4] =


{ {216,71},{118,102},{125,31},{218,31}
};
Point2D_t sayapkanan8[4] =
setColor(magenta);
{ {316,151},{214,178},{216,71},
{244,61} }; fillPolygon(sayapkanan12, 4,
magenta);
setColor(kuning);
setColor(putih);
fillPolygon(sayapkanan8, 4, kuning);
drawPolyline(sayapkanan12, 4);
setColor(putih);

drawPolyline(sayapkanan8, 4);
Point2D_t sayapkanan13[4] =
{ {118,102},{19,45},{20,33},{125,31} };
Point2D_t sayapkanan9[3] =
setColor(biru);
{ {316,151},{244,61},{288,46} };
fillPolygon(sayapkanan13, 4, biru);
setColor(abu);
setColor(putih);
gradatePolygon(sayapkanan9, 3,
grabiru2); drawPolyline(sayapkanan13, 4);
setColor(abu);

Point2D_t sayapkanan14[4] = gradatePolygon(sayapkanan18, 3,


{ {125,31},{20,33},{14,18},{79,-88} }; grahijau2);

setColor(merahmaroon); setColor(putih);

fillPolygon(sayapkanan14, 4, drawPolyline(sayapkanan18, 3);


merahmaroon);

setColor(putih);
Point2D_t sayapkanan19[3] = { {79,-
drawPolyline(sayapkanan14, 4); 88},{119,-200},{155,-174} };

setColor(hijau);

Point2D_t sayapkanan15[3] = { {219,- fillPolygon(sayapkanan19, 3, hijau);


15},{125,31},{79,-88} };
setColor(putih);
setColor(abu);
drawPolyline(sayapkanan19, 3);
gradatePolygon(sayapkanan15, 3,
grabiru4);
Point2D_t sayapkanan20[3] = { {79,-
setColor(putih);
88},{39,-179},{119,-200} };
drawPolyline(sayapkanan15, 3);
setColor(kuning);

fillPolygon(sayapkanan20, 3, kuning);
Point2D_t sayapkanan16[4] = { {238,-
setColor(putih);
35},{219,-15},{79,-88},{207,-118} };
drawPolyline(sayapkanan20, 3);
setColor(abu);

gradatePolygon(sayapkanan16, 4,
grahijau1); glColor3f(0, 0, 1);
setColor(putih); glBegin(GL_POLYGON);
drawPolyline(sayapkanan16, 4); glVertex2f(155, -174);

glVertex2f(119, -200);
Point2D_t sayapkanan17[4] = glVertex2f(110, -250);
{ {14,18},{11,-21},{39,-179},{79,-88} };
glVertex2f(139, -251);
setColor(merah);
glEnd();
fillPolygon(sayapkanan17, 4, merah);

setColor(putih);
Point2D_t sayapkanan22[3] = { {155,-
drawPolyline(sayapkanan17, 4); 174},{139,-251},{180,-254} };

setColor(merah);
Point2D_t sayapkanan18[3] = { {207,- fillPolygon(sayapkanan22, 3, merah);
118},{79,-88},{155,-174} };
setColor(putih); glutInitWindowPosition(100, 100);

drawPolyline(sayap22, 3); glutInitWindowSize(500, 500);

glutCreateWindow("UTS OPENGL BY
ABDUR ROZAQ");
glColor3f(0.5, 0, 0);
glClearColor(0, 0, 0, 0);
glBegin(GL_POLYGON);
gluOrtho2D(-400., 400., -400., 400.);
glVertex2f(180, -254);
glutIdleFunc(display);
glVertex2f(139, -251);
glutDisplayFunc(display);
glVertex2f(133, -276);
glutMainLoop();
glEnd();
return 0;

}
glColor3f(1, 0.85, 0);

glBegin(GL_POLYGON);

glVertex2f(139, -251);

glVertex2f(110, -250);

glVertex2f(133, -276);

glEnd();

void display(void)

glClear(GL_COLOR_BUFFER_BIT);

userdraw();

glutSwapBuffers();

intmain(intargc, char **argv)

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DOUBLE |
GLUT_RGB);
Hasil running program :

Penjelasan :
Dapat dilihat dari program yang saya buat ini adalah sebuah gambar 2D berbentuk kupu-kupu,
yang mana didalamnya saya menggunakan LINE_STRIP, LINE_LOOP, GL_POLYGON,
Struck, dan Gradasi. Pada gambar ini juga saya menggunakan 10 warna berbeda yang dipadukan
menjadi sebuah gambar kupu-kupu seperti yang dapat dilihat diatas.

You might also like