Setelah pada kesempatan sebelumnya saya posting tentang bagaimana cara membuat segi 4 dengan 4 buah segi 3 dengan warna yang berbeda menggunakan microsoft visual C++ 6.0, nah pada posting kali ini saya akan share bagaimana cara membuat kursi dan meja 3.
Sebelumnya ikuti tahap seperti tahap pada posting sebelumnya hingga tahap command
Lalu copy command berikut dan paste kan ke dalam program:
//program dua dimensi
#include<GL/glut.h>
#include<math.h>
typedef struct {
float x,y;
} point2D_t;
typedef struct {
int r,g,b;
} color_t;
void setColor ( color_t col )
{ glColor3f(col.r, col.g, col.b); }
void fillPolygon (point2D_t pnt[], int n, color_t color)
{
int i;
setColor(color);
glBegin(GL_POLYGON);
for (i=0; i<n; ++i)
{
glVertex2f(pnt[i].x, pnt[i].y);
}
glEnd();
}
void drawPolygon(point2D_t pnt[], int n)
{
int i;
glBegin(GL_POLYGON);
for(i=0; i<n; i++)
glVertex2f(pnt[i].x, pnt[i].y);
glEnd();
}
void userdraw()
{ static int tic = 0;
point2D_t
meja[4]={{20,80},{60,160},{200,160},{160,80}};
color_t magenta ={1,0,1};
fillPolygon(meja,4, magenta);
//setColor(1,0,1);
drawPolygon(meja,4);
point2D_t
depankiri[4]={{20,20}, {20,80}, {30,80}, {30,20}};
color_t white ={1,1,1};
fillPolygon(depankiri,4, white);
//setColor(1,1,1);
drawPolygon(depankiri,4);
point2D_t
depankanan[4]={{150,20},{150,80},{160,80},{160,20}};
color_t green ={0,1,0};
fillPolygon(depankanan,4, green);
drawPolygon(depankanan,4);
point2D_t
belakangkiri[4]={{60,50},{60,80},{70,80},{70,50}};
color_t yellow ={1,1,0};
fillPolygon(belakangkiri,4, yellow);
drawPolygon(belakangkiri,4);
point2D_t
belakangkanan[4]={{190,50},{190,140},{200,160},{200,50}};
color_t red ={1,0,0};
fillPolygon(belakangkanan,4, red);
drawPolygon(belakangkanan,4);
point2D_t
kursi[4]={{220,80},{240,120},{320,120},{300,80}};
color_t birumuda ={0,1,1};
fillPolygon(kursi,4, birumuda);
//setColor(0,0,1);
drawPolygon(kursi,4);
point2D_t
depankiri1[4]={{220,20}, {220,80}, {230,80}, {230,20}};
color_t hijau ={0,1,0};
fillPolygon(depankiri1,4, hijau);
//setColor(0,1,0);
drawPolygon(depankiri1,4);
point2D_t
depankanan1[4]={{290,20},{290,80},{300,80},{300,20}};
color_t biru ={0,0,1};
fillPolygon(depankanan1,4, biru);
drawPolygon(depankanan1,4);
point2D_t
belakangkiri1[4]={{240,50},{240,80},{250,80},{250,50}};
color_t kuning ={1,1,0};
fillPolygon(belakangkiri1,4, kuning);
drawPolygon(belakangkiri1,4);
point2D_t
belakangkanan1[4]={{310,50},{310,100},{320,120},{320,50}};
color_t merah ={1,0,0};
fillPolygon(belakangkanan1,4, merah);
drawPolygon(belakangkanan1,4);
point2D_t
kursi1[4]={{300,80},{300,160},{320,200},{320,120}};
color_t putih ={1,1,1};
fillPolygon(kursi1,4, putih);
//setColor(1,1,1);
drawPolygon(kursi1,4);
point2D_t
kursi2[4]={{290,160},{310,200},{320,200},{300,160}};
color_t ungu ={1,0,1};
fillPolygon(kursi2,4, ungu);
//setColor(1,0,1);
drawPolygon(kursi2,4);
point2D_t
kursi3[4]={{290,160},{290,80},{300,80},{300,160}};
color_t hijau1 ={0,1,0};
fillPolygon(kursi3,4, hijau1);
//setColor(0,1,0);
drawPolygon(kursi3,4);
}
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(640,480);
glutCreateWindow("Gambar rumah");
glClearColor(0.0,0.0,0.0,0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Maka hasilnya akan seperti berikut: