#include <glut.h>
float r=1.0, g=0.0, b=0.0;
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,500.0,0.0,400.0);
}
void myLine(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_LINES);
glVertex2i(0, 0);
glVertex2i( 200, 200);
glEnd();
glFlush();
}
void myTriangle(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_TRIANGLES);
glVertex2i( 200, 200);
glVertex2i( 200, 300);
glVertex2i( 100, 250);
glEnd();
glFlush();
}
void mySquare(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_POLYGON);
glVertex2i( 200, 200);
glVertex2i( 200, 400);
glVertex2i( 400, 400);
glVertex2i( 400, 200);
glEnd();
glFlush();
}
void myDisplay(void)
{
glClear( GL_COLOR_BUFFER_BIT );
}
//-------------------------------------------------------------------
void menu(int ms)
{
if (ms==1)
myLine();
if(ms==2)
myTriangle();
if(ms==3)
mySquare();
if(ms==4)
{
r=1.0;
g=0.0;
b=0.0;
}
if(ms==5)
{
r=0.0;
g=1.0;
b=0.0;
}
if(ms==6)
{
r=0.0;
g=0.0;
b=1.0;
}
if(ms==7)
exit(0);
}
void set_up_menu(void)
{
glutCreateMenu(menu);
glutAddMenuEntry("Line",1);
glutAddMenuEntry("Triangle",2);
glutAddMenuEntry("Square",3);
glutAddMenuEntry("Red",4);
glutAddMenuEntry("Green",5);
glutAddMenuEntry("Blue",6);
glutAddMenuEntry("Exit",7);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void main( int argc, char **argv)
{
glutInit(&argc, argv); // Initialize GLUT
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); // Set display mode
glutInitWindowPosition(100,200); // Set top-left display window position
glutInitWindowSize(320,320); // Set display window width and height
glutCreateWindow("An Example");// Create display window
init(); // Execute initialization procedure
glutDisplayFunc(myDisplay);
set_up_menu();// Send graphics to display window
glutMainLoop(); // Display everything and wait
}
float r=1.0, g=0.0, b=0.0;
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,500.0,0.0,400.0);
}
void myLine(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_LINES);
glVertex2i(0, 0);
glVertex2i( 200, 200);
glEnd();
glFlush();
}
void myTriangle(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_TRIANGLES);
glVertex2i( 200, 200);
glVertex2i( 200, 300);
glVertex2i( 100, 250);
glEnd();
glFlush();
}
void mySquare(void)
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f(r, g, b);
glBegin(GL_POLYGON);
glVertex2i( 200, 200);
glVertex2i( 200, 400);
glVertex2i( 400, 400);
glVertex2i( 400, 200);
glEnd();
glFlush();
}
void myDisplay(void)
{
glClear( GL_COLOR_BUFFER_BIT );
}
//-------------------------------------------------------------------
void menu(int ms)
{
if (ms==1)
myLine();
if(ms==2)
myTriangle();
if(ms==3)
mySquare();
if(ms==4)
{
r=1.0;
g=0.0;
b=0.0;
}
if(ms==5)
{
r=0.0;
g=1.0;
b=0.0;
}
if(ms==6)
{
r=0.0;
g=0.0;
b=1.0;
}
if(ms==7)
exit(0);
}
void set_up_menu(void)
{
glutCreateMenu(menu);
glutAddMenuEntry("Line",1);
glutAddMenuEntry("Triangle",2);
glutAddMenuEntry("Square",3);
glutAddMenuEntry("Red",4);
glutAddMenuEntry("Green",5);
glutAddMenuEntry("Blue",6);
glutAddMenuEntry("Exit",7);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
void main( int argc, char **argv)
{
glutInit(&argc, argv); // Initialize GLUT
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); // Set display mode
glutInitWindowPosition(100,200); // Set top-left display window position
glutInitWindowSize(320,320); // Set display window width and height
glutCreateWindow("An Example");// Create display window
init(); // Execute initialization procedure
glutDisplayFunc(myDisplay);
set_up_menu();// Send graphics to display window
glutMainLoop(); // Display everything and wait
}
ليست هناك تعليقات:
إرسال تعليق