/* Praktikum 02
Membuat objek primitif : titik, garis */
#include < windows.h >
#include < stdio.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);
glColor3f (1.0,1.0,1.0);
glEnable(GL_LINE_STIPPLE);
glLineStipple (1, 0xFFFF);
drawOneLine (30.0, 30.0, 60.0, 60.0);
glLineStipple (1, 0xFFFF);
drawOneLine (60.0, 60.0, 90.0, 30.0);
glLineStipple (1, 0xFFFF);
drawOneLine (30.0, 30.0, 90.0, 30.0);
glLineStipple (1, 0xFFFF);
drawOneLine (60.0, 60.0, 90.0, 90.0);
glLineStipple (1, 0xFFFF);
drawOneLine (90.0, 90.0, 120.0, 60.0);
glLineStipple (1, 0xFFFF);
drawOneLine (60.0, 60.0, 120.0, 60.0);
glLineStipple (1, 0xFFFF);
drawOneLine (90.0, 30.0, 120.0, 60.0);
glLineStipple (1, 0xFFFF);
drawOneLine (120.0, 60.0, 150.0, 30.0);
glLineStipple (1, 0xFFFF);
drawOneLine (90.0, 30.0, 150.0, 30.0);
/*
glLineWidth (1.0);
glLineStipple (1, 0x1C47);
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);
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;
}