// Computer Graphics - Amir Hesami //linestyles.cpp #include #pragma comment(lib, "opengl32.lib") // Link OpenGL32.lib #pragma comment(lib, "glu32.lib") // Link Glu32.lib #pragma comment(lib, "glut32.lib") // Link Glut32.lib #pragma comment(linker, "/entry:\"mainCRTStartup\"" ) // set the entry point to be main() #pragma comment(linker, "/subsystem:\"Windows\"" ) // set the entry point to be main() void display(void); void init(void); int main(int argc, char** argv) { glutInit(&argc, argv);// initialise glut system glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB);//set the display mode glutInitWindowSize(500, 500);// set window size glutInitWindowPosition(100,100);// set window position glutCreateWindow("LINE STYLES");// create a window with a certain name glutDisplayFunc(display); //calling the drawing function init(); glutMainLoop(); return 0; } void display(void) { glClear(GL_COLOR_BUFFER_BIT);//clear buffers glColor3f(1.0, 0.0, 0.0); glLineWidth(2); glEnable(GL_LINE_STIPPLE); glLineStipple(1,0x1C47); //line 1 glBegin(GL_LINES); glVertex2f(0.25, 0.25); glVertex2f(0.75, 0.25); glEnd(); glLineStipple(1,0x00FF); //line 2 glBegin(GL_LINES); glVertex2f(0.75, 0.25); glVertex2f(0.75, 0.75); glEnd(); glLineStipple(1,0x0101); //line 3 glBegin(GL_LINES); glVertex2f(0.75, 0.75); glVertex2f(0.25, 0.75); glEnd(); glLineStipple(1,0x3456); //line 4 glBegin(GL_LINES); glVertex2f(0.25, 0.75); glVertex2f(0.25, 0.25); glEnd(); glDisable(GL_LINE_STIPPLE); glFlush(); } void init(void) { glClearColor(1.0, 1.0, 1.0, 1.0);//Set window background color glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); }