Mendesain Rumah Dengan Visual C++
Posted by Hewry Agiel kurniawan
on
12.31
in
tugas
Ini adalah cara membuat rumah 2D dengan program visual C++ dengan menggunakan tool poligon.
Cukup panjang scriptnya dan memang membutuhkan waktu yang cukup lama bagi saya untuk menyelesaikan tugas ini, tapi alhamdulillah dapat diselesaikan dengan baik. Sebenarnya mata kuliah Komputer Grafik ini ada di semester VII, tetapi saya mengambilanya di semester IV karena SKS saya sisa banyak, jadi saya bisa mengambil dua mata kuliah semester VII ketika saya di semester IV. Koq jadi cerita pengalaman ne?? hehehe
sekedar Intermezo saja fren.
oke langsung saja ke TKP..!!!
Hasil akhir yang akan kita buat nantinya seperti ini:
Obyek Grafik 2D
� Struktur data obyek grafik 2D, dalam hal ini digunakan bentuk struktur (type data record) dan array.
� Menggambar obyek grafik 2D dengan struktur data yang sudah ditentukan.

Dan ini adalah script programnya: hanya perlu di copy paste saja di program visual C++
#include <GL/glut.h>
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<n; i++)
{
glVertex2i(pnt[i].x,pnt[i].y);
}
glEnd();
}
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 userdraw(void)
{
point2D_t
ruangan[4]={{100,50},{250,50},{250,155},{100,155}};
color_t kuning ={1,1,0};
fillPolygon(ruangan, 4, kuning);
//setColor(1,0,0);
drawPolygon(ruangan,4);
point2D_t
resplang[4]={{50,155},{300,155},{300,160},{50,160}};
color_t cyan ={0,1,1};
fillPolygon(resplang, 4, cyan);
//setColor(1,0,0);
drawPolygon(resplang,4);
point2D_t
atap[3]={{50,160},{300,160},{175,230}};
color_t merah ={1,0,0};
fillPolygon(atap, 3, merah);
//setColor(1,0,0);
drawPolygon(atap,3);
point2D_t
pintu[4]={{160,50},{190,50},{190,100},{160,100}};
color_t biru ={0,0,1};
fillPolygon(pintu, 4, biru);
//setColor(0,0,1);
drawPolygon(pintu,4);
point2D_t
jendela[4]={{130,60},{150,60},{150,100},{130,100}};
color_t biruu ={0,0,1};
fillPolygon(jendela, 4, biruu);
//setColor(0,0,1);
drawPolygon(jendela,4);
point2D_t
jendela2[4]={{200,60},{220,60},{220,100},{200,100}};
color_t blue ={0,0,1};
fillPolygon(jendela2, 4, blue);
//setColor(0,0,1);
drawPolygon(jendela2,4);
point2D_t
tiang[4]={{30,0},{40,0},{40,40},{30,40}};
color_t white ={1,1,1};
fillPolygon(tiang, 4, white);
//setColor(1,1,1);
drawPolygon(tiang,4);
point2D_t
tiang2[4]={{140,0},{150,0},{150,40},{140,40}};
color_t putih ={1,1,1};
fillPolygon(tiang2, 4, putih);
//setColor(1,1,1);
drawPolygon(tiang2,4);
point2D_t
pagar[4]={{30,10},{140,10},{140,15},{30,15}};
color_t puti ={1,1,1};
fillPolygon(pagar, 4, puti);
//setColor(1,1,1);
drawPolygon(pagar,4);
point2D_t
pagar2[4]={{30,25},{140,25},{140,30},{30,30}};
color_t putihh ={1,1,1};
fillPolygon(pagar2, 4, putihh);
//setColor(1,1,1);
drawPolygon(pagar2,4);
point2D_t
tiang3[4]={{200,0},{210,0},{210,40},{200,40}};
color_t putihhh ={1,1,1};
fillPolygon(tiang3, 4, putihhh);
//setColor(1,1,1);
drawPolygon(tiang,4);
point2D_t
tiang4[4]={{311,0},{320,0},{320,40},{311,40}};
color_t putihhhh ={1,1,1};
fillPolygon(tiang4, 4, putihhhh);
//setColor(1,1,1);
drawPolygon(tiang4,4);
point2D_t
pagar3[4]={{200,10},{311,10},{311,15},{200,15}};
color_t putihhhhh ={1,1,1};
fillPolygon(pagar3, 4, putihhhhh);
//setColor(1,1,1);
drawPolygon(pagar3,4);
point2D_t
pagar4[4]={{200,25},{311,25},{311,30},{200,30}};
color_t putihhhhhh ={1,1,1};
fillPolygon(pagar4, 4, putihhhhhh);
//setColor(1,1,1);
drawPolygon(pagar4,4);
point2D_t
carpot[4]={{155,-10},{195,-10},{195,50},{155,50}};
color_t hijau ={0,1,0};
fillPolygon(carpot, 4, hijau);
//setColor(0,1,0);
drawPolygon(carpot,4);
point2D_t
lantai[4]={{160,45},{190,45},{190,50},{160,50}};
color_t cyann ={0,1,1};
fillPolygon(lantai, 4, cyann);
//setColor(0,1,1);
drawPolygon(lantai,4);
point2D_t
jalan[4]={{0,-10},{0,-60},{350,-60},{350,-10}};
color_t cyannn ={0,1,1};
fillPolygon(jalan, 4, cyannn);
//setColor(0,1,1);
drawPolygon(jalan,4);
point2D_t
pot[4]={{280,40},{285,40},{290,50},{275,50}};
color_t cyannnn ={0,1,1};
fillPolygon(pot, 4, cyannnn);
//setColor(0,1,1);
drawPolygon(pot,4);
point2D_t
bunga[4]={{282,50},{284,50},{284,90},{282,90}};
color_t green ={0,1,0};
fillPolygon(bunga, 4, green);
//setColor(0,1,0);
drawPolygon(bunga,4);
point2D_t
bunga2[4]={{284,50},{298,80},{300,80},{286,50}};
color_t greenn ={0,1,0};
fillPolygon(bunga2, 4, greenn);
//setColor(0,1,0);
drawPolygon(bunga2,4);
point2D_t
bunga3[4]={{282,50},{267,80},{265,80},{280,50}};
color_t greennn ={0,1,0};
fillPolygon(bunga3, 4, greennn);
//setColor(0,1,0);
drawPolygon(bunga3,4);
point2D_t
pot2[4]={{65,40},{70,40},{75,50},{60,50}};
color_t cyannnnn ={0,1,1};
fillPolygon(pot2, 4, cyannnnn);
//setColor(0,1,1);
drawPolygon(pot2,4);
point2D_t
bunga4[4]={{69,50},{69,90},{67,90},{67,50}};
color_t greennnnn ={0,1,0};
fillPolygon(bunga4, 4, greennnnn);
//setColor(0,1,0);
drawPolygon(bunga4,4);
point2D_t
bunga5[4]={{69,50},{84,80},{86,80},{71,50}};
color_t greennnnnn ={0,1,0}
fillPolygon(bunga5, 4, greennnnnn);
//setColor(0,1,0);
drawPolygon(bunga5,4);
point2D_t
bunga6[4]={{67,50},{52,80},{50,80},{65,50}};
color_t greennnnnnn ={0,1,0};
fillPolygon(bunga6, 4, greennnnnnn);
//setColor(0,1,0);
drawPolygon(bunga6,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);
//posisi layar
glutInitWindowPosition(100,100);
//ukuran layar
glutInitWindowSize(740,480);
//title windows
glutCreateWindow("Rumah Idaman");
//warna back layar
glClearColor(0.0 , 0.0 , 0.0 , 0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Jika benar, seharusnya hasilnya seperti gambar di bawah.
Mudah kan??
Selamat mencoba..!!!
Cukup panjang scriptnya dan memang membutuhkan waktu yang cukup lama bagi saya untuk menyelesaikan tugas ini, tapi alhamdulillah dapat diselesaikan dengan baik. Sebenarnya mata kuliah Komputer Grafik ini ada di semester VII, tetapi saya mengambilanya di semester IV karena SKS saya sisa banyak, jadi saya bisa mengambil dua mata kuliah semester VII ketika saya di semester IV. Koq jadi cerita pengalaman ne?? hehehe
sekedar Intermezo saja fren.
oke langsung saja ke TKP..!!!
Hasil akhir yang akan kita buat nantinya seperti ini:
Obyek Grafik 2D
� Struktur data obyek grafik 2D, dalam hal ini digunakan bentuk struktur (type data record) dan array.
� Menggambar obyek grafik 2D dengan struktur data yang sudah ditentukan.
Dan ini adalah script programnya: hanya perlu di copy paste saja di program visual C++
#include <GL/glut.h>
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<n; i++)
{
glVertex2i(pnt[i].x,pnt[i].y);
}
glEnd();
}
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 userdraw(void)
{
point2D_t
ruangan[4]={{100,50},{250,50},{250,155},{100,155}};
color_t kuning ={1,1,0};
fillPolygon(ruangan, 4, kuning);
//setColor(1,0,0);
drawPolygon(ruangan,4);
point2D_t
resplang[4]={{50,155},{300,155},{300,160},{50,160}};
color_t cyan ={0,1,1};
fillPolygon(resplang, 4, cyan);
//setColor(1,0,0);
drawPolygon(resplang,4);
point2D_t
atap[3]={{50,160},{300,160},{175,230}};
color_t merah ={1,0,0};
fillPolygon(atap, 3, merah);
//setColor(1,0,0);
drawPolygon(atap,3);
point2D_t
pintu[4]={{160,50},{190,50},{190,100},{160,100}};
color_t biru ={0,0,1};
fillPolygon(pintu, 4, biru);
//setColor(0,0,1);
drawPolygon(pintu,4);
point2D_t
jendela[4]={{130,60},{150,60},{150,100},{130,100}};
color_t biruu ={0,0,1};
fillPolygon(jendela, 4, biruu);
//setColor(0,0,1);
drawPolygon(jendela,4);
point2D_t
jendela2[4]={{200,60},{220,60},{220,100},{200,100}};
color_t blue ={0,0,1};
fillPolygon(jendela2, 4, blue);
//setColor(0,0,1);
drawPolygon(jendela2,4);
point2D_t
tiang[4]={{30,0},{40,0},{40,40},{30,40}};
color_t white ={1,1,1};
fillPolygon(tiang, 4, white);
//setColor(1,1,1);
drawPolygon(tiang,4);
point2D_t
tiang2[4]={{140,0},{150,0},{150,40},{140,40}};
color_t putih ={1,1,1};
fillPolygon(tiang2, 4, putih);
//setColor(1,1,1);
drawPolygon(tiang2,4);
point2D_t
pagar[4]={{30,10},{140,10},{140,15},{30,15}};
color_t puti ={1,1,1};
fillPolygon(pagar, 4, puti);
//setColor(1,1,1);
drawPolygon(pagar,4);
point2D_t
pagar2[4]={{30,25},{140,25},{140,30},{30,30}};
color_t putihh ={1,1,1};
fillPolygon(pagar2, 4, putihh);
//setColor(1,1,1);
drawPolygon(pagar2,4);
point2D_t
tiang3[4]={{200,0},{210,0},{210,40},{200,40}};
color_t putihhh ={1,1,1};
fillPolygon(tiang3, 4, putihhh);
//setColor(1,1,1);
drawPolygon(tiang,4);
point2D_t
tiang4[4]={{311,0},{320,0},{320,40},{311,40}};
color_t putihhhh ={1,1,1};
fillPolygon(tiang4, 4, putihhhh);
//setColor(1,1,1);
drawPolygon(tiang4,4);
point2D_t
pagar3[4]={{200,10},{311,10},{311,15},{200,15}};
color_t putihhhhh ={1,1,1};
fillPolygon(pagar3, 4, putihhhhh);
//setColor(1,1,1);
drawPolygon(pagar3,4);
point2D_t
pagar4[4]={{200,25},{311,25},{311,30},{200,30}};
color_t putihhhhhh ={1,1,1};
fillPolygon(pagar4, 4, putihhhhhh);
//setColor(1,1,1);
drawPolygon(pagar4,4);
point2D_t
carpot[4]={{155,-10},{195,-10},{195,50},{155,50}};
color_t hijau ={0,1,0};
fillPolygon(carpot, 4, hijau);
//setColor(0,1,0);
drawPolygon(carpot,4);
point2D_t
lantai[4]={{160,45},{190,45},{190,50},{160,50}};
color_t cyann ={0,1,1};
fillPolygon(lantai, 4, cyann);
//setColor(0,1,1);
drawPolygon(lantai,4);
point2D_t
jalan[4]={{0,-10},{0,-60},{350,-60},{350,-10}};
color_t cyannn ={0,1,1};
fillPolygon(jalan, 4, cyannn);
//setColor(0,1,1);
drawPolygon(jalan,4);
point2D_t
pot[4]={{280,40},{285,40},{290,50},{275,50}};
color_t cyannnn ={0,1,1};
fillPolygon(pot, 4, cyannnn);
//setColor(0,1,1);
drawPolygon(pot,4);
point2D_t
bunga[4]={{282,50},{284,50},{284,90},{282,90}};
color_t green ={0,1,0};
fillPolygon(bunga, 4, green);
//setColor(0,1,0);
drawPolygon(bunga,4);
point2D_t
bunga2[4]={{284,50},{298,80},{300,80},{286,50}};
color_t greenn ={0,1,0};
fillPolygon(bunga2, 4, greenn);
//setColor(0,1,0);
drawPolygon(bunga2,4);
point2D_t
bunga3[4]={{282,50},{267,80},{265,80},{280,50}};
color_t greennn ={0,1,0};
fillPolygon(bunga3, 4, greennn);
//setColor(0,1,0);
drawPolygon(bunga3,4);
point2D_t
pot2[4]={{65,40},{70,40},{75,50},{60,50}};
color_t cyannnnn ={0,1,1};
fillPolygon(pot2, 4, cyannnnn);
//setColor(0,1,1);
drawPolygon(pot2,4);
point2D_t
bunga4[4]={{69,50},{69,90},{67,90},{67,50}};
color_t greennnnn ={0,1,0};
fillPolygon(bunga4, 4, greennnnn);
//setColor(0,1,0);
drawPolygon(bunga4,4);
point2D_t
bunga5[4]={{69,50},{84,80},{86,80},{71,50}};
color_t greennnnnn ={0,1,0}
fillPolygon(bunga5, 4, greennnnnn);
//setColor(0,1,0);
drawPolygon(bunga5,4);
point2D_t
bunga6[4]={{67,50},{52,80},{50,80},{65,50}};
color_t greennnnnnn ={0,1,0};
fillPolygon(bunga6, 4, greennnnnnn);
//setColor(0,1,0);
drawPolygon(bunga6,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);
//posisi layar
glutInitWindowPosition(100,100);
//ukuran layar
glutInitWindowSize(740,480);
//title windows
glutCreateWindow("Rumah Idaman");
//warna back layar
glClearColor(0.0 , 0.0 , 0.0 , 0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Jika benar, seharusnya hasilnya seperti gambar di bawah.
Mudah kan??
Selamat mencoba..!!!
Ditulis Oleh : Hewry Agiel kurniawan ~
