Rabu, 11 Oktober 2017

Drawing Primitive 2 dengan menggunakan OpenGL Dev C++

Assalamualaikum hai hai hai saya hadir lagi ceman dengan membuat berbagai macam bentuk,garis,dll.Kali ini saya akan memberikan contoh "Drawing Primitive 2 dengan menggunakan OpenGL Dev C++" semoga contoh berikut bermanfaat ya ceman ☺☺☺.Jangan lewatkan contoh contoh berikutnya ya.............


Program 1 : Membuat Garis Lurus


CODING :

#include <iostream>
#include <GL/glut.h>

void display(void)
{
            glClear (GL_COLOR_BUFFER_BIT);
            glColor3f (1.0, 1.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 (325, 75);
                        glVertex2f (5, 75);
                        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 (400,150);
            glutInitWindowPosition (100, 100);
            glutCreateWindow (argv[0]);
            glutDisplayFunc (display);
            glutReshapeFunc (reshape);
            glutMainLoop ();
            return 0;
}


/* run this program using the console pauser or add your own getch, system("pause") or input loop */

OUTPUT :

______________________________________________________

Program 2 : Membuat macam strip

CODING :

#include <iostream>
#include <GL/glut.h>
#include <stdlib.h>

#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.0, 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;

}

OUTPUT :


______________________________________________________

Program 3 : Membuat Kumbang


CODING :

#include <iostream>
#include <GL/glut.h>

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;
}

OUTPUT :


______________________________________________________

Program 4 : Membuat Gradasi Warna

CODING :

#include <iostream>
#include <GL/glut.h>
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;
}

OUTPUT :


______________________________________________________

Program 5 : Membuat Tulisan

CODING :

#include <iostream>
#include <string.h>
#include <GL/glut.h>
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) {
case 1:
message = "pustaka glut openGL...kecil.";
break;
case 2:
message = "PUSTAKA GLUT OPENGL...BESAR.";
break;
}
}
void selectColor(int color)
{
switch (color) {
case 1:
glColor3f(0.0, 1.0, 0.0);
break;
case 2:
glColor3f(1.0, 0.0, 0.0);
break;
case 3:
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 SAYA BELAJAR GLUT bitmap font.");
output(100, 100, message);
output(0, 145, "(Posisi dalam PIXEL dengan dimulai atas kiri ,...xixixi)");
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;

}

OUTPUT :

______________________________________________________

Program 6 : Membuat Garis Strip

CODING :

#include <iostream>
#include <GL/glut.h>

void display(void)
{
                glClear (GL_COLOR_BUFFER_BIT);
                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 (400,150);
                glutInitWindowPosition (100, 100);
                glutCreateWindow (argv[0]);
                glutDisplayFunc (display);
                glutReshapeFunc (reshape);
                glutMainLoop ();
                return 0;

}
OUTPUT :

______________________________________________________

Program 7 : Membuat Kupu-kupu

CODING :

 #include <iostream>
#include <GL/glut.h>
void display(void)
{
GLubyte fly[] = {
      0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x00, 
      0x00, 0xC0, 0x03, 0x00, 0x06, 0x18, 0x18, 0x60,
      0x06, 0x18, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 
      0x18, 0x0C, 0x30, 0x18, 0x18, 0x0C, 0x30, 0x18, 
      0x00, 0x00, 0x00, 0x00, 0x18, 0x06, 0x60, 0x18,
      0x18, 0x06, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 
      0x0C, 0x01, 0x80, 0x60, 0x0C, 0x01, 0x80, 0x60, 
      0x00, 0xC0, 0x03, 0x00, 0x00, 0xCE, 0x73, 0x00,
      0x00, 0x0E, 0x70, 0x00, 0x00, 0x0F, 0xF0, 0x00,
      0x00, 0x03, 0xC0, 0x00, 0x01, 0x83, 0xC1, 0x80,
      0x01, 0x8F, 0xF1, 0x80, 0x0A, 0x0E, 0x70, 0x30,
      0x0A, 0x0E, 0x70, 0x30, 0x00, 0x00, 0x00, 0x00,
      0x30, 0x00, 0x00, 0x0C, 0x30, 0x18, 0x18, 0x0C,
      0x00, 0x18, 0x18, 0x00, 0x0A, 0x00, 0x00, 0x30,
      0x0A, 0xC0, 0x03, 0x30, 0x00, 0xC0, 0x03, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 0.5, 0.7);
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 (1.0, 1.0, 0.1, 1.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;
}
OUTPUT :


Tidak ada komentar:

Posting Komentar