Professional Documents
Culture Documents
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} };
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);
setColor(putih);
setColor(abu);
Point2D_t sayap14[4] = { {-125,31},{-
gradatePolygon(sayap9, 3, grabiru2); 20,33},{-14,18},{-79,-88} };
setColor(putih); setColor(merahmaroon);
setColor(putih);
Point2D_t sayap10[3] = { {-244,61},{-
216,71},{-218,31} }; drawPolyline(sayap14, 4);
setColor(biru);
setColor(putih);
Point2D_t sayap11[3] = { {-244,61},{-
218,31},{-288,46} }; drawPolyline(sayap15, 3);
setColor(abu);
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);
glVertex2f(-139, -251);
Point2D_t sayap19[3] = { {-79,-88},{-
119,-200},{-155,-174} }; glVertex2f(-133, -276);
setColor(hijau); glEnd();
fillPolygon(sayap19, 3, hijau);
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 sayapkanan2[3] =
glVertex2f(11, -21); { {314,283},{211,262},{316,151} };
setColor(putih);
drawPolyline(sayapkanan2, 3);
glColor3f(1, 0, 0);
glEnd();
Point2D_t sayapkanan5[4] =
{ {117,203},{118,102},{216,71},
{214,178} };
setColor(merah); setColor(putih);
setColor(putih);
setColor(biru);
Point2D_t sayapkanan6[3] =
{ {117,203},{47,123},{118,102} }; fillPolygon(sayapkanan10, 3, biru);
setColor(kuning); setColor(putih);
setColor(putih);
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(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);
setColor(merahmaroon); setColor(putih);
setColor(putih);
Point2D_t sayapkanan19[3] = { {79,-
drawPolyline(sayapkanan14, 4); 88},{119,-200},{155,-174} };
setColor(hijau);
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);
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();
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.