0
Komputer Grafik: Gambar 2 Dimensi (Masjid)
Posted by harianku
on
11.39
Komputer Grafik
Mengambar sebuah gambar 2 dimensi melalui aplikasi seperti photoshop sudah menjadi hal yang biasa, dan banyak orang yang bisa melakukannya. Namun bagaimana kalau menggambarnya melalui sebuah code, tentu tidak semua bisa melakukannya. Kali ini saya akan membagikan salah satu hasil karya saya, membangun sebuah gambar 2 dimensi menggunakan code C++.
Untuk tampilannya seperti berikut :
Yang perlu disiapkan untuk membuat gambar 2 Dimensi seperti diatas hanya siapkan aplikasi Microsoft Visual Studio. Untuk programnya saya berikan cuma-cuma, bisa langsung anda copas dan gunakan.
CODE C++ :
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>
int i;
float rgb(float z){
return z/255;
}
typedef struct {
float x,y;
} point2D_t;
void fillPolygon(point2D_t p[],int n, float r, float g, float b){
glColor3f(r,g,b);
glBegin(GL_POLYGON);
for(int i=0;i<n;i++){
glVertex2f(p[i].x,p[i].y);
}
glEnd();
}
void fillCircle(float r, int n, float x, float y, float red, float g, float b){
point2D_t p[360];
float a=6.28/n;
for(int i=0;i<n;i++){
p[i].x=x+r*(float)cos((float)i*a);
p[i].y=y+r*(float)sin((float)i*a);
}
fillPolygon(p,n, red, g, b);
}
void userdraw(void){
glPointSize(6.);
static float tambah =0.111111;
//tiang peyangga bulan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-2.,130.);
glVertex2f(2.,130.);
glVertex2f(2.,-15.);
glVertex2f(-2.,-15.);
glEnd();
//AWAN
fillCircle(50,360,-150-(i*30),230,rgb(252),rgb(252),rgb(252));
if(tambah>=700)
tambah=0.111111;
else
{
for(i=0;i<8;i++)
{
fillCircle(20,360,-150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360, 500-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
}
for(i=0;i<8;i++)
{
fillCircle(20,360,-150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,150-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360, 500-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
}
tambah+=0.011111;
}
for(i=0;i<4;i++)
{
fillCircle(20,360,-250-(i*30)+tambah,210,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,90-(i*30)+tambah,210,rgb(252),rgb(252),rgb(252));
}
//Menur besar
fillCircle(100,360,0,-15,rgb(176),rgb(177),rgb(172));
//Bulan separuh
fillCircle(20,180,0,150,rgb(176),rgb(177),rgb(172));
fillCircle(20,180,-3,155,rgb(255),rgb(76),rgb(76));
//alas putih
glBegin(GL_POLYGON);
glColor3f(rgb(242),rgb(252),rgb(252));
glVertex2f(-215.,-130.);
glVertex2f(215.,-130.);
glVertex2f(280.,-185.);
glVertex2f(-280.,-185.);
glEnd();
//alas batas tembok
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(222),rgb(220));
glVertex2f(-215.,-115.);
glVertex2f(215.,-115.);
glVertex2f(215.,-130.);
glVertex2f(-215.,-130.);
glEnd();
//tembok putih
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(254),rgb(254),rgb(254));
glVertex2f(-210.,-35.);
glVertex2f(210.,-35.);
glVertex2f(210.,-115.);
glVertex2f(-210.,-115.);
glEnd();
//tiang kiri
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-210.,-35.);
glVertex2f(-110.,-35.);
glVertex2f(-110.,-115.);
glVertex2f(-210.,-115.);
glEnd();
//antara tiang kiri dan tiang dekat pintu
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-70.,-85.);
glVertex2f(-110.,-85.);
glVertex2f(-110.,-115.);
glVertex2f(-70.,-115.);
glEnd();
//tiang dekat pintu utama (kiri)
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-70.,-35.);
glVertex2f(-50.,-35.);
glVertex2f(-50.,-115.);
glVertex2f(-70.,-115.);
glEnd();
//tiang kanan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(110.,-35.);
glVertex2f(210.,-35.);
glVertex2f(210.,-115.);
glVertex2f(110.,-115.);
glEnd();
//tiang dekat pintu utama (kanan)
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(70.,-35.);
glVertex2f(50.,-35.);
glVertex2f(50.,-115.);
glVertex2f(70.,-115.);
glEnd();
//antara tiang kanan dan tiang dekat pintu
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(70.,-85.);
glVertex2f(110.,-85.);
glVertex2f(110.,-115.);
glVertex2f(70.,-115.);
glEnd();
//pintu
fillCircle(26,360,0,-68,rgb(176),rgb(177),rgb(172));
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-25.,-55.);
glVertex2f(-25.,-75.);
glVertex2f(25.,-75.);
glVertex2f(25.,-55.);
glEnd();
//jalan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-50.,-115.);
glVertex2f(-25.,-75.);
glVertex2f(25.,-75.);
glVertex2f(50.,-115.);
glEnd();
//atap
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(222),rgb(220));
glVertex2f(-215.,-15.);
glVertex2f(215.,-15.);
glVertex2f(215.,-35.);
glVertex2f(-215.,-35.);
glEnd();
//MENARA KIRI
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-200.,130.);
glVertex2f(-120.,130.);
glVertex2f(-120.,-15.);
glVertex2f(-200.,-15.);
glEnd();
//garis hitam menara kiri
glBegin(GL_LINES);
glColor3f(rgb(1),rgb(1),rgb(1));
glVertex2f(-180.,130.);
glVertex2f(-180.,-15.);
glVertex2f(-140.,130.);
glVertex2f(-140.,-15.);
glEnd();
//Pintu MENARA
fillCircle(15,360,-160,90,rgb(116),rgb(110),rgb(112));
fillCircle(15,360,-160,30,rgb(116),rgb(110),rgb(112));
//Kotak Menara Bagian Bawah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,25.);
glVertex2f(-110.,25.);
glVertex2f(-110.,5.);
glVertex2f(-210.,5.);
glEnd();
//Kotak Menara Bagian Tengah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,85.);
glVertex2f(-110.,85.);
glVertex2f(-110.,65.);
glVertex2f(-210.,65.);
glEnd();
//Kotak Menara Bagian Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,115.);
glVertex2f(-110.,115.);
glVertex2f(-110.,135.);
glVertex2f(-210.,135.);
glEnd();
//Kotak Hitam pada Menara Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-207.,118.);
glVertex2f(-115.,118.);
glVertex2f(-115.,132.);
glVertex2f(-207.,132.);
glEnd();
//Garis 1 menara kiri
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-183.,85.);
glVertex2f(-183.,65.);
glVertex2f(-137.,85.);
glVertex2f(-137.,65.);
glEnd();
//Garis 2 menara kiri
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-183.,25.);
glVertex2f(-183.,5.);
glVertex2f(-137.,25.);
glVertex2f(-137.,5.);
glEnd();
//MENARA KANAN
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(120.,130.);
glVertex2f(200.,130.);
glVertex2f(200.,-15.);
glVertex2f(120.,-15.);
glEnd();
//Pintu MENARA
fillCircle(15,360,160,90,rgb(116),rgb(110),rgb(112));
fillCircle(15,360,160,30,rgb(116),rgb(110),rgb(112));
//garis menara kanan
glBegin(GL_LINES);
glColor3f(rgb(1),rgb(1),rgb(1));
glVertex2f(180.,130.);
glVertex2f(180.,-15.);
glVertex2f(140.,130.);
glVertex2f(140.,-15.);
glEnd();
//Kotak Menara Bagian Bawah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,25.);
glVertex2f(110.,25.);
glVertex2f(110.,5.);
glVertex2f(210.,5.);
glEnd();
//Kotak Menara Bagian Tengah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,85.);
glVertex2f(110.,85.);
glVertex2f(110.,65.);
glVertex2f(210.,65.);
glEnd();
//Kotak Menara Bagian Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,115.);
glVertex2f(110.,115.);
glVertex2f(110.,135.);
glVertex2f(210.,135.);
glEnd();
//Warna hitam pada kotak Bagian atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(207.,118.);
glVertex2f(115.,118.);
glVertex2f(115.,132.);
glVertex2f(207.,132.);
glEnd();
//Garis 1 menara kanan
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(183.,85.);
glVertex2f(183.,65.);
glVertex2f(137.,85.);
glVertex2f(137.,65.);
glEnd();
//Garis 2 menara kanan
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(183.,25.);
glVertex2f(183.,5.);
glVertex2f(137.,25.);
glVertex2f(137.,5.);
glEnd();
//ATAP
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(221),rgb(221),rgb(219));
glVertex2f(-120.,-10.);
glVertex2f(120.,-10.);
glVertex2f(120.,-40.);
glVertex2f(-120.,-40.);
glEnd();
//Pelipit Atap KIRI
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-140.,-15.);
glVertex2f(-120.,-10.);
glVertex2f(-120.,-40.);
glVertex2f(-140.,-35.);
glEnd();
//Pelipit Atap KANAN
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(140.,-15.);
glVertex2f(120.,-10.);
glVertex2f(120.,-40.);
glVertex2f(140.,-35.);
glEnd();
//atap hitam
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(113),rgb(112),rgb(110));
glVertex2f(-115.,-15.);
glVertex2f(115.,-15.);
glVertex2f(115.,-35.);
glVertex2f(-115.,-35.);
glEnd();
//pintu kiri
fillCircle(36,360,-160,-72,rgb(176),rgb(177),rgb(172));
glBegin(GL_POLYGON);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-195,-60);
glVertex2f(-125,-60);
glVertex2f(-125,-110);
glVertex2f(-195,-110);
glEnd();
fillCircle(32,360,-160,-72,rgb(83),rgb(80),rgb(71));
glBegin(GL_POLYGON);
glColor3f(rgb(83),rgb(80),rgb(71));
glVertex2f(-192,-60);
glVertex2f(-128,-60);
glVertex2f(-128,-110);
glVertex2f(-192,-110);
glEnd();
//pintu kanan
fillCircle(36,360,160,-72,rgb(176),rgb(177),rgb(172));
glBegin(GL_POLYGON);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(195,-60);
glVertex2f(125,-60);
glVertex2f(125,-110);
glVertex2f(195,-110);
glEnd();
//kotak pintu
fillCircle(32,360,160,-72,rgb(83),rgb(80),rgb(71));
glBegin(GL_POLYGON);
glColor3f(rgb(83),rgb(80),rgb(71));
glVertex2f(192,-60);
glVertex2f(128,-60);
glVertex2f(128,-110);
glVertex2f(192,-110);
glEnd();
}
void display(){
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100, 200);
glutInitWindowSize(700, 700);
glutCreateWindow("Mahbub 2110121036 2D4ITB");
glClearColor(80, 0.3, 0.3, 80);
gluOrtho2D(-320., 320., -240., 240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
#include <stdio.h>
#include <math.h>
#include <GL/glut.h>
int i;
float rgb(float z){
return z/255;
}
typedef struct {
float x,y;
} point2D_t;
void fillPolygon(point2D_t p[],int n, float r, float g, float b){
glColor3f(r,g,b);
glBegin(GL_POLYGON);
for(int i=0;i<n;i++){
glVertex2f(p[i].x,p[i].y);
}
glEnd();
}
void fillCircle(float r, int n, float x, float y, float red, float g, float b){
point2D_t p[360];
float a=6.28/n;
for(int i=0;i<n;i++){
p[i].x=x+r*(float)cos((float)i*a);
p[i].y=y+r*(float)sin((float)i*a);
}
fillPolygon(p,n, red, g, b);
}
void userdraw(void){
glPointSize(6.);
static float tambah =0.111111;
//tiang peyangga bulan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-2.,130.);
glVertex2f(2.,130.);
glVertex2f(2.,-15.);
glVertex2f(-2.,-15.);
glEnd();
//AWAN
fillCircle(50,360,-150-(i*30),230,rgb(252),rgb(252),rgb(252));
if(tambah>=700)
tambah=0.111111;
else
{
for(i=0;i<8;i++)
{
fillCircle(20,360,-150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360, 500-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
}
for(i=0;i<8;i++)
{
fillCircle(20,360,-150-(i*30)+tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,150-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
fillCircle(20,360, 500-(i*30)-tambah,230,rgb(252),rgb(252),rgb(252));
}
tambah+=0.011111;
}
for(i=0;i<4;i++)
{
fillCircle(20,360,-250-(i*30)+tambah,210,rgb(252),rgb(252),rgb(252));
fillCircle(20,360,90-(i*30)+tambah,210,rgb(252),rgb(252),rgb(252));
}
//Menur besar
fillCircle(100,360,0,-15,rgb(176),rgb(177),rgb(172));
//Bulan separuh
fillCircle(20,180,0,150,rgb(176),rgb(177),rgb(172));
fillCircle(20,180,-3,155,rgb(255),rgb(76),rgb(76));
//alas putih
glBegin(GL_POLYGON);
glColor3f(rgb(242),rgb(252),rgb(252));
glVertex2f(-215.,-130.);
glVertex2f(215.,-130.);
glVertex2f(280.,-185.);
glVertex2f(-280.,-185.);
glEnd();
//alas batas tembok
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(222),rgb(220));
glVertex2f(-215.,-115.);
glVertex2f(215.,-115.);
glVertex2f(215.,-130.);
glVertex2f(-215.,-130.);
glEnd();
//tembok putih
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(254),rgb(254),rgb(254));
glVertex2f(-210.,-35.);
glVertex2f(210.,-35.);
glVertex2f(210.,-115.);
glVertex2f(-210.,-115.);
glEnd();
//tiang kiri
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-210.,-35.);
glVertex2f(-110.,-35.);
glVertex2f(-110.,-115.);
glVertex2f(-210.,-115.);
glEnd();
//antara tiang kiri dan tiang dekat pintu
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-70.,-85.);
glVertex2f(-110.,-85.);
glVertex2f(-110.,-115.);
glVertex2f(-70.,-115.);
glEnd();
//tiang dekat pintu utama (kiri)
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-70.,-35.);
glVertex2f(-50.,-35.);
glVertex2f(-50.,-115.);
glVertex2f(-70.,-115.);
glEnd();
//tiang kanan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(110.,-35.);
glVertex2f(210.,-35.);
glVertex2f(210.,-115.);
glVertex2f(110.,-115.);
glEnd();
//tiang dekat pintu utama (kanan)
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(70.,-35.);
glVertex2f(50.,-35.);
glVertex2f(50.,-115.);
glVertex2f(70.,-115.);
glEnd();
//antara tiang kanan dan tiang dekat pintu
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(70.,-85.);
glVertex2f(110.,-85.);
glVertex2f(110.,-115.);
glVertex2f(70.,-115.);
glEnd();
//pintu
fillCircle(26,360,0,-68,rgb(176),rgb(177),rgb(172));
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-25.,-55.);
glVertex2f(-25.,-75.);
glVertex2f(25.,-75.);
glVertex2f(25.,-55.);
glEnd();
//jalan
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-50.,-115.);
glVertex2f(-25.,-75.);
glVertex2f(25.,-75.);
glVertex2f(50.,-115.);
glEnd();
//atap
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(222),rgb(220));
glVertex2f(-215.,-15.);
glVertex2f(215.,-15.);
glVertex2f(215.,-35.);
glVertex2f(-215.,-35.);
glEnd();
//MENARA KIRI
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(-200.,130.);
glVertex2f(-120.,130.);
glVertex2f(-120.,-15.);
glVertex2f(-200.,-15.);
glEnd();
//garis hitam menara kiri
glBegin(GL_LINES);
glColor3f(rgb(1),rgb(1),rgb(1));
glVertex2f(-180.,130.);
glVertex2f(-180.,-15.);
glVertex2f(-140.,130.);
glVertex2f(-140.,-15.);
glEnd();
//Pintu MENARA
fillCircle(15,360,-160,90,rgb(116),rgb(110),rgb(112));
fillCircle(15,360,-160,30,rgb(116),rgb(110),rgb(112));
//Kotak Menara Bagian Bawah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,25.);
glVertex2f(-110.,25.);
glVertex2f(-110.,5.);
glVertex2f(-210.,5.);
glEnd();
//Kotak Menara Bagian Tengah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,85.);
glVertex2f(-110.,85.);
glVertex2f(-110.,65.);
glVertex2f(-210.,65.);
glEnd();
//Kotak Menara Bagian Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-210.,115.);
glVertex2f(-110.,115.);
glVertex2f(-110.,135.);
glVertex2f(-210.,135.);
glEnd();
//Kotak Hitam pada Menara Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-207.,118.);
glVertex2f(-115.,118.);
glVertex2f(-115.,132.);
glVertex2f(-207.,132.);
glEnd();
//Garis 1 menara kiri
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-183.,85.);
glVertex2f(-183.,65.);
glVertex2f(-137.,85.);
glVertex2f(-137.,65.);
glEnd();
//Garis 2 menara kiri
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(-183.,25.);
glVertex2f(-183.,5.);
glVertex2f(-137.,25.);
glVertex2f(-137.,5.);
glEnd();
//MENARA KANAN
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(222),rgb(173),rgb(192));
glVertex2f(120.,130.);
glVertex2f(200.,130.);
glVertex2f(200.,-15.);
glVertex2f(120.,-15.);
glEnd();
//Pintu MENARA
fillCircle(15,360,160,90,rgb(116),rgb(110),rgb(112));
fillCircle(15,360,160,30,rgb(116),rgb(110),rgb(112));
//garis menara kanan
glBegin(GL_LINES);
glColor3f(rgb(1),rgb(1),rgb(1));
glVertex2f(180.,130.);
glVertex2f(180.,-15.);
glVertex2f(140.,130.);
glVertex2f(140.,-15.);
glEnd();
//Kotak Menara Bagian Bawah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,25.);
glVertex2f(110.,25.);
glVertex2f(110.,5.);
glVertex2f(210.,5.);
glEnd();
//Kotak Menara Bagian Tengah
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,85.);
glVertex2f(110.,85.);
glVertex2f(110.,65.);
glVertex2f(210.,65.);
glEnd();
//Kotak Menara Bagian Atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(210.,115.);
glVertex2f(110.,115.);
glVertex2f(110.,135.);
glVertex2f(210.,135.);
glEnd();
//Warna hitam pada kotak Bagian atas
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(207.,118.);
glVertex2f(115.,118.);
glVertex2f(115.,132.);
glVertex2f(207.,132.);
glEnd();
//Garis 1 menara kanan
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(183.,85.);
glVertex2f(183.,65.);
glVertex2f(137.,85.);
glVertex2f(137.,65.);
glEnd();
//Garis 2 menara kanan
glBegin(GL_LINES);
glColor3f(rgb(10),rgb(10),rgb(10));
glVertex2f(183.,25.);
glVertex2f(183.,5.);
glVertex2f(137.,25.);
glVertex2f(137.,5.);
glEnd();
//ATAP
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(221),rgb(221),rgb(219));
glVertex2f(-120.,-10.);
glVertex2f(120.,-10.);
glVertex2f(120.,-40.);
glVertex2f(-120.,-40.);
glEnd();
//Pelipit Atap KIRI
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(-140.,-15.);
glVertex2f(-120.,-10.);
glVertex2f(-120.,-40.);
glVertex2f(-140.,-35.);
glEnd();
//Pelipit Atap KANAN
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(193),rgb(193),rgb(193));
glVertex2f(140.,-15.);
glVertex2f(120.,-10.);
glVertex2f(120.,-40.);
glVertex2f(140.,-35.);
glEnd();
//atap hitam
glBegin(GL_TRIANGLE_FAN);
glColor3f(rgb(113),rgb(112),rgb(110));
glVertex2f(-115.,-15.);
glVertex2f(115.,-15.);
glVertex2f(115.,-35.);
glVertex2f(-115.,-35.);
glEnd();
//pintu kiri
fillCircle(36,360,-160,-72,rgb(176),rgb(177),rgb(172));
glBegin(GL_POLYGON);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(-195,-60);
glVertex2f(-125,-60);
glVertex2f(-125,-110);
glVertex2f(-195,-110);
glEnd();
fillCircle(32,360,-160,-72,rgb(83),rgb(80),rgb(71));
glBegin(GL_POLYGON);
glColor3f(rgb(83),rgb(80),rgb(71));
glVertex2f(-192,-60);
glVertex2f(-128,-60);
glVertex2f(-128,-110);
glVertex2f(-192,-110);
glEnd();
//pintu kanan
fillCircle(36,360,160,-72,rgb(176),rgb(177),rgb(172));
glBegin(GL_POLYGON);
glColor3f(rgb(176),rgb(177),rgb(172));
glVertex2f(195,-60);
glVertex2f(125,-60);
glVertex2f(125,-110);
glVertex2f(195,-110);
glEnd();
//kotak pintu
fillCircle(32,360,160,-72,rgb(83),rgb(80),rgb(71));
glBegin(GL_POLYGON);
glColor3f(rgb(83),rgb(80),rgb(71));
glVertex2f(192,-60);
glVertex2f(128,-60);
glVertex2f(128,-110);
glVertex2f(192,-110);
glEnd();
}
void display(){
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(100, 200);
glutInitWindowSize(700, 700);
glutCreateWindow("Mahbub 2110121036 2D4ITB");
glClearColor(80, 0.3, 0.3, 80);
gluOrtho2D(-320., 320., -240., 240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Semoga bermanfaat dan bisa menjadi referensi untuk menciptakan karya anda sendiri.
Kunjungi Juga Kampus Tradisi Juara PENS
Posting Komentar