#include <windows.h>
#include <gl/gl.h>
#include<gl/glaux.h>
#include <gl/glu.h>
#pragma comment(lib, "openGL32.lib ")
#pragma comment(lib, "glu32.lib ")
#pragma comment(lib, "glaux.lib ")
void myinit(void);
void CALLBACK myReshape(GLsizei w,GLsizei h);
void CALLBACK display(void);
/************************************************************************/
/* 完成清屏,清缓冲区 */
/************************************************************************/
void myinit(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
/************************************************************************/
/* 设置合适的视口 */
/************************************************************************/
void CALLBACK myReshape(GLsizei w,GLsizei h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w<=h)
{
glOrtho(-1.5,1.5,-1.5*(GLfloat)h/(GLfloat)w,1.5*(GLfloat)h/(GLfloat)w,-10.0,10.0);
}
else
{
glOrtho(-1.5*(GLfloat)h/(GLfloat)w,1.5*(GLfloat)h/(GLfloat)w,-1.5,1.5,-10.0,10.0);
}
glMatrixMode(GL_MODELVIEW);
}
/************************************************************************/
/* 画图程序 */
/************************************************************************/
void CALLBACK display(void)
{
glColor3f(0.0,0.0,1.0);
auxWireSphere(1.0);
glFlush();
}
void main()
{
/************************************************************************/
/* 首先构件窗体 ,再清屏,再设置视口,最后画图 */
/************************************************************************/
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,500,500);
auxInitWindow("example");
myinit();
auxReshapeFunc(myReshape);
auxMainLoop(display);
}
运行效果:

743

被折叠的 条评论
为什么被折叠?



