OpenGl用鼠标操作

#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;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值