Kamis, 12 Oktober 2017

Membuat Berbagai Macam Bentuk di Dev C++ Part 2

1. Membuat garis putus-putus


syntax:
 
#include  
#include  

#define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES);         \ 
                                 glVertex2f ((x1),(y1));    \ 
                                 glVertex2f ((x2),(y2));    \ 
                                 glEnd();  
void init(void)  
{ 
   glClearColor (0.0, 0.0, 0.0, 0.0); 
   glShadeModel (GL_FLAT); 
} 
void display(void) 

int
 i; 
   glClear (GL_COLOR_BUFFER_BIT); 
   glColor3f (0.0, 1.0, 0.0); 
   glEnable (GL_LINE_STIPPLE); 
   glLineStipple (1, 0x0101);               /*  dotted  */ 
   drawOneLine (50.0, 125.0, 150.0, 125.0); 
   glLineStipple (1, 0x00FF);               /*  dashed  */ 
   drawOneLine (150.0, 125.0, 250.0, 125.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */ 
   drawOneLine (250.0, 125.0, 350.0, 125.0); 
   glLineWidth (50.0); 
   glLineStipple (1, 0x0101);               /*  dotted  */ 
   drawOneLine (50.0, 100.0, 150.0, 100.0); 
   glLineStipple (1, 0x00FF);               /*  dashed  */ 
   drawOneLine (150., 100.0, 250.0, 100.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */   
   drawOneLine (250.0, 100.0, 350.0, 100.0); 
   glLineWidth (1.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */ 
   glBegin (GL_LINE_STRIP); 
   for (i = 0; i < 7; i++) 
      glVertex2f (50.0 + ((GLfloat) i * 50.0), 75.0); 
   glEnd (); 

for (i = 0; i < 6; i++) 
{ 
      drawOneLine (50.0 + ((GLfloat) i * 50.0), 50.0,
  50.0 + ((GLfloat)(i+1) * 50.0), 50.0); 
} 
   glLineStipple (5, 0x1C47);              /*  dash/dot/dash  */ 
   drawOneLine (50.0, 25.0, 350.0, 25.0); 
   glDisable (GL_LINE_STIPPLE); 
   glFlush (); 
}
void reshape (int w, int h) 
{ 
   glViewport (0, 0, (GLsizei) w, (GLsizei) h); 
   glMatrixMode (GL_PROJECTION); 
   glLoadIdentity (); 
   gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h); 
} 
int main(int argc, char** argv) 
{ 
   glutInit(&argc, argv); 
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
   glutInitWindowSize (400, 150);  
   glutInitWindowPosition (100, 100); 
   glutCreateWindow (argv[0]); 
   init (); 
   glutDisplayFunc(display);  
   glutReshapeFunc(reshape); 
   glutMainLoop(); 
return 0; 
} 




2. Membuat seperti barcode


syntax:
 

#include  
#include  

#define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES);         \ 
                                 glVertex2f ((x1),(y1));    \ 
                                 glVertex2f ((x2),(y2));    \ 
                                 glEnd();  
void init(void)  
{ 
   glClearColor (0.0, 0.0, 0.0, 0.0); 
   glShadeModel (GL_FLAT); 
} 
void display(void) 

int
 i; 
   glClear (GL_COLOR_BUFFER_BIT); 
   glColor3f (0.0, 1.0, 0.0); 
   glEnable (GL_LINE_STIPPLE); 
   glLineStipple (1, 0x0101);               /*  dotted  */ 
   drawOneLine (50.0, 125.0, 150.0, 125.0); 
   glLineStipple (1, 0x00FF);               /*  dashed  */ 
   drawOneLine (150.0, 125.0, 250.0, 125.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */ 
   drawOneLine (250.0, 125.0, 350.0, 125.0); 
   glLineWidth (50.0); 
   glLineStipple (1, 0x0101);               /*  dotted  */ 
   drawOneLine (50.0, 100.0, 150.0, 100.0); 
   glLineStipple (1, 0x00FF);               /*  dashed  */ 
   drawOneLine (150., 100.0, 250.0, 100.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */   
   drawOneLine (250.0, 100.0, 350.0, 100.0); 
   glLineWidth (1.0); 
   glLineStipple (1, 0x1C47);               /*  dash/dot/dash  */ 
   glBegin (GL_LINE_STRIP); 
   for (i = 0; i < 7; i++) 
      glVertex2f (50.0 + ((GLfloat) i * 50.0), 75.0); 
   glEnd (); 

for (i = 0; i < 6; i++) 
{ 
      drawOneLine (50.0 + ((GLfloat) i * 50.0), 50.0,
  50.0 + ((GLfloat)(i+1) * 50.0), 50.0); 
} 
   glLineStipple (5, 0x1C47);              /*  dash/dot/dash  */ 
   drawOneLine (50.0, 25.0, 350.0, 25.0); 
   glDisable (GL_LINE_STIPPLE); 
   glFlush (); 
}
void reshape (int w, int h) 
{ 
   glViewport (0, 0, (GLsizei) w, (GLsizei) h); 
   glMatrixMode (GL_PROJECTION); 
   glLoadIdentity (); 
   gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h); 
} 
int main(int argc, char** argv) 
{ 
   glutInit(&argc, argv); 
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
   glutInitWindowSize (400, 150);  
   glutInitWindowPosition (100, 100); 
   glutCreateWindow (argv[0]); 
   init (); 
   glutDisplayFunc(display);  
   glutReshapeFunc(reshape); 
   glutMainLoop(); 
return 0; 
} 



3. Membuat seperti Kumbang.


syntax:
 

#include 
void display(void)
{
   GLubyte fly[] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60,
 0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20,
 0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,
 0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22,
 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
 0x66, 0x01, 0x80, 0x66, 0x33, 0x01, 0x80, 0xCC,
 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,
 0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0,
 0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0,
 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,
 0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08,
 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08,
 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};

   glClear (GL_COLOR_BUFFER_BIT);
   glColor3f (0.0, 1.0, 0.0);
   glRectf (25.0, 125.0, 125.0, 350.0);
   glEnable (GL_POLYGON_STIPPLE);
   glPolygonStipple (fly);
   glRectf (200.0, 125.0, 800.0, 350.0);
   glDisable (GL_POLYGON_STIPPLE);
   glFlush ();
}
void init (void)
{
   glClearColor (0.0, 0.0, 0.0, 0.0);
   glShadeModel (GL_FLAT);    
}
void reshape (int w, int h) {
  glViewport (50, 0,(GLsizei) w, (GLsizei) h);
  glMatrixMode (GL_PROJECTION);
  glLoadIdentity ();
  gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}
int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (1000, 500);    glutCreateWindow (argv[0]);
   init ();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutMainLoop();
return 0;  

}


4. Membuat Kotak warna warni.


syntax:
 

#include  
int board[3][3];   /* jumlah warna untuk tiap kotak   */ 
/*  Clear nilai warna untuk setiap kotak pada board   */ 
void init(void) 
{ 
int i, j; 
for (i = 0; i < 3; i++)  
for (j = 0; j < 3; j ++) 
         board[i][j] = 0; 
   glClearColor (0.0, 0.0, 0.0, 0.0); 
} 
void drawSquares(GLenum mode) 
{ 
   GLuint i, j; for (i = 0; i < 3; i++)  
   { 
if (mode == GL_SELECT) 
glLoadName (i); 
for (j = 0; j < 3; j ++)  
{ 
if (mode == GL_SELECT) 
            glPushName (j); 
            glColor3f ((GLfloat) i/3.0, (GLfloat) j/3.0, (GLfloat) board[i][j]/3.0); 
            glRecti (i, j, i+1, j+1); 
if (mode == GL_SELECT) glPopName (); 
          } 
   } 
} 
void display(void) 
{ 
   glClear(GL_COLOR_BUFFER_BIT); 
   drawSquares (GL_RENDER); 
   glFlush(); 
} 
void reshape(int w, int h) 
{ 
   glViewport(0, 0, w, h); 
   glMatrixMode(GL_PROJECTION); 
   glLoadIdentity(); 
   gluOrtho2D (0.0, 3.0, 0.0, 3.0
); 
   glMatrixMode(GL_MODELVIEW); 
   glLoadIdentity(); 
} 
int main(int argc, char** argv) 
{ 
   glutInit(&argc, argv); 
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
   glutInitWindowSize (400, 400); 
   glutInitWindowPosition (100, 100); 
   glutCreateWindow (argv[0]); 
   init (); 
   glutReshapeFunc (reshape); 
   glutDisplayFunc(display);  
   glutMainLoop(); 
return 0;  
} 


5. Membuat bitmap font



syntax:
 

#include  
#include  
void *font = GLUT_BITMAP_TIMES_ROMAN_24; 
void *fonts[] ={GLUT_BITMAP_9_BY_15, GLUT_BITMAP_TIMES_ROMAN_10, GLUT_BITMAP_TIMES_ROMAN_24}; 
char defaultMessage[] = "Pustaka GLUT OpenGL."; 
char *message = defaultMessage; 
void selectFont(
int newfont) 
{ 
  font = fonts[newfont]; 
  glutPostRedisplay(); 
} 
void selectMessage(int msg) 
{ 
switch (msg)
{ 
case1: message = "pustaka glut openGL...kecil."; 
break; 
case2: message = "PUSTAKA GLUT OPENGL...BESAR."; 
break; 
  } 
} 
void selectColor(int color) 
{ 
switch (color)
{ 
case1: glColor3f(0.0, 1.0, 0.0); 
break; 
case2: glColor3f(1.0, 0.0, 0.0); 
break; 
case3: glColor3f(1.0, 1.0, 1.0); 
break; 
} 
  glutPostRedisplay(); 
} 
void tick(void) 
{ 
  glutPostRedisplay(); 
} 
void output(int x, int y, char *string) 
{ 
int len, i; 
 glRasterPos2f(x, y); 
  len = (int) strlen(string);
for (i = 0; i < len; i++)  
  { 
    glutBitmapCharacter(font, string[i]); 
  } 
} 
void display(void) 
{ 
  glClear(GL_COLOR_BUFFER_BIT); 
  output(0, 24, "HELLO NAMA SAYA NIDYA OKTAVIANA BELAJAR GLUT bitmap font."); 
  output(100, 100, message); 
  output(0, 145,"(Posisi dalam PIXEL dengan dimulai atas kiri, hohoho)"); 
  glutSwapBuffers(); 
} 
void reshape(int w, int h) 
{ 
  glViewport(0, 0, w, h); 
  glMatrixMode(GL_PROJECTION); 
  glLoadIdentity(); 
  gluOrtho2D(0, w, h, 0); 
  glMatrixMode(GL_MODELVIEW); 
} 
int main(int argc, char**argv) 
{ 
int i, msg_submenu, color_submenu; 
  glutInit(&argc, argv); 
for (i = 1; i < argc; i++)
{ 
if (!strcmp(argv[i], "-mono"))
{ 
      font = GLUT_BITMAP_9_BY_15; 
    } 
  } 
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); 
  glutInitWindowSize(600, 150); 
  glutCreateWindow("GLUT bitmap font example"); 
  glClearColor(0.0, 0.0, 0.0, 1.0); 
  glutDisplayFunc(display); 
  glutReshapeFunc(reshape); 
  glutIdleFunc(tick); 
  msg_submenu = glutCreateMenu(selectMessage); 
  glutAddMenuEntry("huruf kecil",1); 
  glutAddMenuEntry("HURUF BESAR", 2); 
  color_submenu = glutCreateMenu(selectColor); 
  glutAddMenuEntry("HIJAU", 1); 
  glutAddMenuEntry("MERAH", 2); 
  glutAddMenuEntry("PUTIH", 3); 
  glutCreateMenu(selectFont); 
  glutAddMenuEntry("Default", 0); 
  glutAddMenuEntry("Times Roman 10", 1); 
  glutAddMenuEntry("Times Roman 24", 2); 
  glutAddSubMenu("Messages", msg_submenu); 
  glutAddSubMenu("Warna", color_submenu); 
  glutAttachMenu(GLUT_RIGHT_BUTTON); 
  glutMainLoop(); 
return 0;              
} 


Tugas :

1. Buatlah program untuk menentukan garis strip dengan warna lain dengan koordinat vertek 1 (127,80), dan vertex 2 (500,100)


syntax:
 
#include 
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 0.0, 1.0);
glColor3f (1.0, 0.0, 1.0);
glEnable (GL_LINE_STIPPLE);
// glLineStipple (1, 0x0101); /* membuat titik */
glLineStipple (1, 0x00ff); /* membuat strip-strip */
//glLineStipple (1, 0x10ff); /* membuat strip titik strip */
glBegin(GL_LINE_STRIP);
glVertex2f (127, 80);
glVertex2f (500, 100);
glEnd();
glDisable (GL_LINE_STIPPLE);
glFlush ();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (600, 150);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;

}


2. Seperti pada program 3, buatlah gambar lain yg di sukai.


syntax:
 

#include 
void display(void)
{
GLubyte line[] = {
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60,
 0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20,
 0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,
 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,
 0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0,
 0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0,
 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,
 0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08,
 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08,
 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08,
 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,
 0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0,
 0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0,
 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,
 0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08,
 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0c, 0x08,
 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08
};
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (2.0, 1.0, 3.0);
glEnable (GL_POLYGON_STIPPLE);
glPolygonStipple (line);
glRectf (100.0, 100.0, 300.0, 320.0);
glDisable (GL_POLYGON_STIPPLE);
glFlush ();
}
void init (void)
{
glClearColor (1.1, 0.0, 0.0, 0.1);
glShadeModel (GL_FLAT);
}
void reshape (int w, int h)
{
glViewport (50, 0,(GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (1000, 500);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;

}


Rabu, 04 Oktober 2017

Membuat Berbagai Macam Bentuk pada Dev C++

1. Membuat Titik

    berikut syntax programnya:
   
#include  //memanggil librari OpenGL
void titik();
main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(600,800);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Percobaan |");
	glClearColor(0.0,0.0,0.0,0.0); // warna latar belakang/4komponen warna yaitu RGB, dan alpha
	glMatrixMode(GL_PROJECTION);
	//glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
	glutMainLoop();
	}
	void titik()
	{
		glClear(GL_COLOR_BUFFER_BIT);//membersihkan semua piksel
		glPointSize(5.5); //ukuran titik k piksel
		glBegin(GL_POINTS); //perintah untuk grafik primitiv
		glColor3f(1.0,1.0,1.0); //warna latar muka/3 komponen warna RGB
		glBegin(GL_POINTS); //perintah untuk grafik primitif
		glColor3f(1.0,1.0,1.0); //warna latar muka / 3 komponen warna RGB
		glVertex2f (0.25,0.25); // lokasi titik berada di (x,y) / tipe argumennya adalah integer dan 2 dimensi yaitu x dan y
		glColor3f(0.1,1.0,1.0);
		glVertex2f(0.5,0.5);
		//glPointSize(2.0);
		glEnd(); //akhir perintah OpenGL
		glFlush(); //untuk mengeksekusi openGL infinite time
	}
Membuat Titik Banyak


#include 
void titik ();
main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(600,800);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Percobaan 1");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	
	glOrtho(1.0,1.0,1.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
}
void titik()
{
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5.5);
glBegin(GL_POINTS);

glColor3f(1.0,1.0,1.0);
glVertex2f(0.25,0.25);

glColor3f(0.1,1.0,1.0);
glVertex2f(0.5,0.5);

glColor3f(1.0,0.0,0.0);
glVertex2f(0.75,0.25);

glColor3f(1.0,0.0,1.0); //ganti warna titik
glVertex2f(0.50,0.50); // ganti posisi titik nya

glColor3f(0.0,0.0,1.0);
glVertex2f(0.6,0.85);	

glColor3f(0.0,1.0,1.0);
glVertex2f(0.15,0.75);	

glColor3f(1.0,1.0,1.0);
glVertex2f(0.5,0.25);

glEnd();
glFlush();
}
2. Membuat Garis

#include 
void titik();
	main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(800,600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("PERCOBAAN 2");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	// glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
}
	void titik()
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_LINES);
		glColor3f(1.0,1.0,1.0);
		glVertex2f(0.25,0.25);
		glColor3f(1.0,1.0,1.0);
		glVertex2f(0.5,0.5);
		glVertex2f(0.75,0.5);
		glVertex2f(0.5,0.8);
		glPointSize(50.0f);
		glEnd();
		glFlush(); 
	} //untuk mengeksekusi opengL infinite time
3. Membuat Stripe

#include 
void titik();
	main (int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(800,600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Percobaan 3");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	//glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
}
	void titik()
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_LINE_STRIP);
		glColor3f(1.0,0.0,0.0);
		glVertex2f(0.5,0.5);
		glColor3f(0.0,0.0,1.0);
		glVertex2f(0.7,0.8);
		glPointSize(50.0f);
		glEnd();
		glFlush();//untuk mengeksekusi openGLinfit time
}
4. Membuat Segitiga

glColor3f(0.1,0.1,1.0);
glVertex2f(0.75,0.5);
glColor3f(0.1,1.0,0.1);
glVertex2f(0.25,0.5);

glColor3f(0.0,0.0,1.0);
glVertex2f(0.75,0.5);
glColor3f(1.0,0.1,0.1);
glVertex2f(0.5,0.9);

glColor3f(0.1,1.0,0.1);
glVertex2f(0.25,0.5);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.5,0.9);

#include 
void titik();
	main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(800,600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("PERCOBAAN 2");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	// glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
}
	void titik()
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_LINES);
		glColor3f(0.1,0.1,1.0);
		glVertex2f(0.75,0.5);
		glColor3f(0.1,1.0,0.1);
		glVertex2f(0.25,0.5);

		glColor3f(0.0,0.0,1.0);
		glVertex2f(0.75,0.5);
		glColor3f(1.0,1.1,0.1);
		glVertex2f(0.5,0.9);

		glColor3f(0.1,1.0,0.1);
		glVertex2f(0.25,0.5);
		glColor3f(1.1,0.0,0.0);
		glVertex2f(0.5,0.9);
		glEnd();
		glFlush(); 
	} //untuk mengeksekusi opengL infinite time
5. Membuat Kotak


#include 
void titik();
	main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(600,600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("PERCOBAAN 2");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	glutDisplayFunc(titik);
	glutMainLoop();
}
	void titik()
	{
		glClear(GL_COLOR_BUFFER_BIT);
		glBegin(GL_POLYGON); 
		glColor3f(1.1,0.0,1.0); //persegi ungu
    	glVertex2f(-0.5,-0.5);
     	glVertex2f(-0.5,0.5);
     	glVertex2f(0.5,0.5);
     	glVertex2f(0.5,-0.5);
     	glEnd();
		glFlush(); 
	} //untuk mengeksekusi opengL infinite time


6. Membuat Garis dengan Berbagai warna


#include
void titik ();
main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(800,600);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Percobaan 2");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	
	glutDisplayFunc(titik);
	glutMainLoop();
}
void titik()
{
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_LINES);
	
	glColor3f(1.0,0.0,0.0);
	glVertex2f(0.5,0.7);
	glColor3f(0.0,0.0,0.0);
	glVertex2f(0.5,0.9); 
	
	glColor3f(0.0,1.0,0.0);
	glVertex2f(0.8,0.3);
	glColor3f(0.0,1.0,0.0);
	glVertex2f(0.2,0.2);
	
	glColor3f(0.0,0.0,1.0);
	glVertex2f(0.6,0.9);
	glColor3f(0.0,0.0,1.0);
	glVertex2f(0.4,0.4);
	
	glColor3f(1.0,5.0,0.0);
	glVertex2f(0.15,0.3);
	glColor3f(1.0,5.0,0.0);
	glVertex2f(0.7,0.7);
	
	glColor3f(0.0,5.0,0.0);
	glVertex2f(0.55,0.8);
	glColor3f(0.1,1.0,1.0);
	glVertex2f(0.10,0.9);
	
		glColor3f(1.0,0.0,1.0);
	glVertex2f(0.3,0.9);
	glColor3f(1.0,0.0,1.0);
	glVertex2f(0.5,0.5);
	
		glColor3f(1.0,1.0,1.0);
	glVertex2f(0.8,0.15);
	glColor3f(1.0,1.0,1.0);
	glVertex2f(0.7,0.3);
	
	
	glPointSize(50.0f);
	glEnd();
	glFlush();
}

7. Membuat Kotak Dalam Kotak


#include
void titik();


void titik()
{
	glClear(GL_COLOR_BUFFER_BIT); //merah
	glBegin(GL_POLYGON);
	glColor3f(0.0,1.0,0.0);	
	glVertex2f(-0.7f,-0.7f);
	glVertex2f(-0.7f,0.7f);
	glVertex2f(0.7f,0.7f);
	glVertex2f(0.7f,-0.7f);
	glVertex2f(-0.7f,-0.7f);
	glPointSize(50.0f);
	glEnd();//akhir perintah OpenGL

    
	glBegin(GL_POLYGON);
	glColor3f(1.0,0.0,0.0);	
	glVertex2f(-0.3f,-0.3f);
	glVertex2f(-0.3f,0.3f);
	glVertex2f(0.3f,0.3f);
	glVertex2f(0.3f,-0.3f);
	glVertex2f(-0.3f,-0.3f);
	glPointSize(50.0f);
	glEnd();//akhir perintah OpenGL	
	glFlush();//untuk mengeksekusi openGL infinite time
}

main(int argc, char** argv)
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(800,800);
	glutInitWindowPosition(100,100);
	glutCreateWindow("Percobaan 3");
	glClearColor(0.0,0.0,0.0,0.0);
	glMatrixMode(GL_PROJECTION);
//	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
	glOrtho(1.0,1.0,1.0,1.0,-1.0,1.0);
	glutDisplayFunc(titik);
	glutMainLoop();
}


Selasa, 26 September 2017

Membuat Rumah sangat sederhana dengan OpenGL pada Dev.C++

Nah kali ini saya mau Share tentang cara Membuat Rumah sangat sederhana dengan OpenGL pada Dev.C++. Langsung saja di bawah ini adalah Outputnya :


1. Pertama, kita buat Project baru dengan cara pilih File > New > Project ( CTRL + N)

2. Kedua, lalukan setting project seperti yang telah di pelajari kemaren atau klik https://coretanidya.blogspot.co.id/2017/09/grafika-komputer-dengan-bahasa-c-dan.html

3. Ketiga, masukkan coding berikut ini;
#include <iostream>
#include <windows.h>
#include <gl/GL.h>
#include <gl/glut.h>
#include <stdlib.h>
#include <stdio.h>
int screenWidth=640;
int screenHeight=480;
struct Point
{
int x;
int y;
};
struct GlintPoint
{
GLint x,y;
};

void myInit(void)

{
glClearColor (0.0,0,0.0,0);
glColor3f(1.0f,1.0f,0.0f);
glPointSize(4.0);
glLineWidth(4.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);

}

void paraHouse(struct Point peak, GLint width, GLint height)

{
glBegin (GL_LINE_LOOP);

glVertex2i(peak.x - width / 2, peak.y - height);
glVertex2i(peak.x - width / 2, peak.y - 4 * height/9);
glVertex2i(peak.x - width / 3, peak.y - 2 * height/9);
glVertex2i(peak.x + width / 3, peak.y - 2 * height/9);
glVertex2i(peak.x + width / 2, peak.y - 4 * height/9);
glVertex2i(peak.x + width / 2, peak.y - height);  
glVertex2i(peak.x + width / 2, peak.y - height);
glEnd();

glBegin(GL_LINE_STRIP);
glVertex2i(peak.x - width / 6, peak.y - 2*height /9);
glVertex2i(peak.x, peak.y );
glVertex2i(peak.x + width / 6, peak.y - 2*height/9);
glEnd();

glBegin(GL_LINE_STRIP);
glVertex2i(peak.x - width / 3, peak.y - height);
glVertex2i(peak.x - width / 3, peak.y - 5*height /9);
glVertex2i(peak.x - 5 * width / 60, peak.y - 5*height/9);
glVertex2i(peak.x - 5 * width / 60, peak.y - height);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex2i(peak.x + width / 12, peak.y - 7*height/9);
glVertex2i(peak.x + width / 12, peak.y - 5*height/9);
glVertex2i(peak.x + width / 4, peak.y - 5*height/9);
glVertex2i(peak.x + width / 4, peak.y - 7*height/9);

glEnd();

}

void Display (void)
{
struct Point p;
p.x=300;
p.y=300;
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINT);
paraHouse(p,100,200);
glBegin(GL_LINE_LOOP);
glVertex2i(10,10);
glVertex2i(10,60);
glVertex2i(20,80);
glVertex2i(60,80);
glVertex2i(70,60);
glVertex2i(70,10);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2i(20,10);
glVertex2i(20,50);
glVertex2i(35,50);
glVertex2i(35,10);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2i(30,80);
glVertex2i(40,100);
glVertex2i(50,80);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex2i(45,30);
glVertex2i(45,50);
glVertex2i(55,50);
glVertex2i(55,30);
glEnd();
glFlush();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(800,600);
glutInitWindowPosition(100,150);
glutCreateWindow("RUMAH SANGAT SEDERHANA");
glutDisplayFunc(Display);
myInit();
glutMainLoop();
}



Kamis, 14 September 2017

Grafika Komputer dengan Bahasa C++ dan Freeglut : Instalasi Dev.C++ dan Freeglut

APA ITU FREEGLUT ?

Freeglut adalah Open Source alternatif untuk OpenGL Utility Toolkit (GLUT) library. GLUT pertama kali ditulis oleh Mark Kilgard untuk membantu sample program pada edisi kedua buku OpenGL "RedBook" . Namun, library ini ditinggalkan ( tidak mendapat pembaruan ) sejak tahun 1998, dan parahnya lagi, lisensi dari GLUT ini tidak memperbolehkan siapapun untuk mempublish kode yang telah dimodifikasi.


INSTALASI DEV.C++

1. Download file installer dev.c++ versi terbaru nya di laman https://sourceforge.net/projects/orwelldevcpp/


2. Buka file yang sudah di download, ekstrak kemudian lakukan installasi dengan mengklik 2 kali pada file sehingga tampil menu pilihan bahasa.



3. Selanjutnya akan ditampilkan "License Agreement", sebagai pengguna yang baik bacalah lalu klik "I Agree".


4. Kemudian pilih komponen yang akan diinstal, lalu klik next.


5. Selanjutnya pilih lokasi penyimpanan yang sesuai (biasanya di Disk C) lalu klik install.


6. Jika berhasil maka proses installasi akan berlangsung, dan akan muncul menu prompt jika installasi telah selesai.




Setelah program DEV C++ terinstall pada komputer, Anda perlu melakukan setting sebelum mulai bekerja.

1. Setting Bahasa, pilihlah bahasa yang sesuai. lalu klik next.


2. Setting Font, pilihlah jenis & warna font yang diinginkan. lalu klik next


3. Kemudian klik OK


Setting OpenGL

1. Download juga file library nya di http://freeglut.sourceforge.net/

2. Ekstrak file zip yang telah didownload, didalam folder yang telah didownload, akan ada folder lagi dengan nama freeglut

3. Kemudian copykan filenya ke:
    - Isi folder bin ke C:\Windows\System32
    - Isi folder include ke C:\Program Files (x86)\DevCpp\MinGW64\x86_64-w64-mingw32\include\GL

    - Isi folder lib ke C:\Program Files (x86)\Dev- Cpp\MinGW64\x86_64w64-mingw32\lib

4. Setelah kalian sudah mengcopy semua file di atas, sekarang
    buka Dev.C kemudian klik File > New > Project


5. Pilih Console Application > OK, beri nama sesuai dengan gambar dan kalian simpan di documents agar memudahkan kalian menemukannya.

6. Setelah itu, klik kanan di Project anda dan pilih Project Option


7.  Kemudian pilih Parameters > Linker > dan ketikkan -lopengl32, -lfreeglut, -lglu32 lalu OK



Apabila semua langkah tersebut dapat dijalankan, selamat anda sudah berhasil mensetting freeglut di Dev.C++. Mohon maaf apabila ada kekurangan dalam tutorial tersebut. Thank you :)