opengl入门实例(4)-鼠标事件

在OpenGL中,利用鼠标和键盘来对应用程序产生交互是必须的,我们可以制作一个菜单让我们选择要绘画的类型,图元的颜色及线条粗细等材质.

我刚刚参考了一个网上的例子,原先自己最大的问题就是对于OpenGL 调用函数放置的位置,现在看来自己可以先写写几个应用的例子,提高效率

下面是创建一个窗口,单击鼠标后会产生一簇簇的直线系,重点是学习鼠标函数的应用机制.

时间不多,保护眼睛.

#include<stdio.h>
#include<GL/glut.h>
void display()
{
	glClear(GL_COLOR_BUFFER_BIT);
	glPointSize(3);
	glBegin(GL_POINTS);
	glVertex2i(0,0);
	glEnd();
	glFlush();

}
void mymouse(int button,int state,int x,int y)//定义鼠标函数
{
	if(state == GLUT_DOWN)
	{
		while(x<500 && y<500)
		{
			printf("%d,%d\n",x,y);

			glBegin(GL_LINES);
			glColor3f(1.0,0.0,0.0);
			glVertex2i(0,0);
			glVertex2i(x-250,250-y);//transform to world orrdixio
			glVertex2i(x-250,250-y);
			//glVertex2i(x,y);
			glEnd();
			glFlush();
			x=x+3;//loop 
			y=y+3;

		}
	}
}
init()
{
	glMatrixMode(GL_PROJECTION);//投影模式
	glLoadIdentity();//载入单位矩阵
	gluOrtho2D(-250.0,250.0,-250.0,250.0);//
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
	/*single mode or rgb mode*/
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
	glutInitWindowSize(500,500);//设定窗口大小
	glutInitWindowPosition(0,0);
	glutCreateWindow("hello,opengl");
	glutDisplayFunc(display);//调用函数
	init();//init 
	glutMouseFunc(mymouse);//调用鼠标事件
	glutMainLoop();
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值