18 June 2012

membuat garis putus OpenGL

Berikut ini adalah program OpenGL untuk membuat garis putus-putus.

Praktikum 2 grafika :

#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.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);/* select white for all lines */
glColor3f (1.0, 1.0, 1.0);
glEnable (GL_LINE_STIPPLE);
//glLineStipple (1,0x0101);/*dotted*/
//drawOneLine (50.0, 125.0, 150.0, 125.0);
glLineStipple (1, 0x00FF); /*dotted*/
drawOneLine (50.0, 10.0, 200.0, 50.0);

glLineStipple (1, 0x00FF); /* dashed */
drawOneLine (50.0, 200.0, 200.0, 90.0);

glLineStipple (1, 0x00FF); /* dashed */
drawOneLine (50.0, 90.0, 200.0, 90.0);
//glLineStipple (1, 0x1C47); /* dash/dot/dash */
//drawOneLine (250.0, 125.0, 350.0, 125.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;
        
         }


0 komentar:

Post a Comment