#include #include #include #include #include #include #include "glut.h"static GLfloat spin = 0.0;void init( void ){glClearColor( 0.0, 0.0, 0.0, 0.0 );glShadeModel( GL_FLAT );}void display( void ) {glClear( GL_COLOR_BUFFER_BIT );glPushMatrix( );glRotatef( spin, 0.0, 0.0, 1.0 );glColor3f( 1.0, 1.0, 1.0 );glRectf( -25.0, -25.0, 25.0, 25.0 );glPopMatrix( );glutSwapBuffers( );}void spinDisplay( void ){spin = spin + 2.0;if ( spin > 360.0 )spin = spin - 360.0;glutPostRedisplay( );}void reshape( int w, int h ) {glViewport( 0, 0, (GLsizei)w, (GLsizei)h );glMatrixMode( GL_PROJECTION );glLoadIdentity( ); void glOrtho(GLdouble left,GLdouble right,// GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);glOrtho( -50.0, 50.0, -50.0, 50.0, -1.0, 1.0 );glMatrixMode( GL_MODELVIEW );glLoadIdentity( );}void mouse( int button, int state, int x, int y ){switch ( button ){case GLUT_LEFT_BUTTON:if ( state == GLUT_DOWN )glutIdleFunc( spinDisplay );break;case GLUT_MIDDLE_BUTTON:if ( state == GLUT_DOWN )glutIdleFunc( 0 );break;default:break;}}void keyboard( unsigned char key, int x, int y ){switch (key){case 'a':glutIdleFunc( spinDisplay );break;case 's':glutIdleFunc( 0 );break;}}int main( int argc, char** argv ){ glutInit( &argc, argv );glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );glutInitWindowSize( 250, 250 );glutInitWindowPosition( 100, 100 );glutCreateWindow( argv [0] );init( );glutDisplayFunc( display );glutReshapeFunc( reshape );glutMouseFunc( mouse );glutKeyboardFunc( keyboard );glutMainLoop( );return 0;}
OpenGl用鼠标操作
最新推荐文章于 2022-08-29 15:02:22 发布