OpenGl学习之显示窗口重定形函数

通过上面一个程序我们可以发现一个问题或者说是一个优点,就是随着显示窗口的增大,显窗口中显示的图像也会随之增大,这个在很多界面语言中的需要完成的一个功能,现在OpenGL中提出了一个问题,我们不想随着窗口的变化而使得其中显示的图形的比例之类的也发生变化,那么这就是这个程序该做的事情。

看程序

#include <gl/glut.h>
#include <math.h>

GLuint regHex;

void init()
{
	glClearColor(0.0,0.0,0.0,0.0);
	//gluOrtho2D(0,10,0,10);
	regHex = glGenLists(1);
	glNewList(regHex,GL_COMPILE);
		glBegin(GL_LINES);
			glColor3f(1.0,0.0,0.0);
			glVertex2f(2.5,2.5);

			glColor3f(0.0,0.0,1.0);
			glVertex2f(290.6,290.4);
		glEnd();
	glEndList();
}



void display()
{
	glClear(GL_COLOR_BUFFER_BIT);
	glCallList(regHex);
	glFlush();

}

void reshape(int w,int h)
{
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluOrtho2D(0,(GLdouble)w,0,(GLdouble)h);
	glClear(GL_COLOR_BUFFER_BIT);
}

int main(int argc,char **argv)
{
	glutInit(&argc, argv); //固定格式    
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);   //缓存模式    
	glutInitWindowSize(400, 400);    //显示框的大小    
	glutInitWindowPosition(20,20); //确定显示框左上角的位置    
	glutCreateWindow("绘制立方体");    
	init();    
	glutDisplayFunc(display);    
	glutReshapeFunc(reshape);    
	glutMainLoop(); //进人GLUT事件处理循环    
	return 0;  
}

程序非常的简单

glutReshapeFunc(reshape);    
该函数它在显示窗口尺寸输入后立即激活。该GLUT函数的变量是接受新窗口宽度和高度的过程名。我们可以接着使用新尺寸去重新设置投影参数并完成任何其他操作,包括改变显示窗口颜色。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值