visual c++ 6.0 OpenGL编译环境配置
Windows环境下安装GLUT的步骤:
(1)“d:\ProgramFiles\MicrosoftVisualStudio\VC98\lib文件夹”)。
把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹,即lib文件夹。
(2)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。没用的话直接放在工程文件下
(典型的位置为:C:\Windows\System32)这是非常重要的动态链接库设置。
第三步,创建工程,其步骤如下:
(3)创建一个Win32ConsoleApplication。
(4) 链接OpenGLlibraries:在VisualC++中先单击Project,再单击Settings,再找到Link单击,最后在Object/librarymodules的最前面加上opengl32.libGlut32.libGlaux.libglu32.lib。(5)单击ProjectSettings中的C/C++标签,将Preprocessordefinitions中的_CONSOLE改为__WINDOWS。
最后单击好。
#include <windows.h> #include <gl/glut.h> void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT);//用当前的清除颜色清除窗口 glColor3f(1.0f,1.0f,0.0f); //绘制绘图颜色 glLineWidth(1); //线的宽度 /*glRectf(-25.0f,25.0f,25.0f,-25.0f); //绘制填充矩形*/ glBegin(GL_LINE_LOOP); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(0.0f,50.0f,0.0f); /* glColor3f(1.0f,1.0f,0.5f); 这样再画的话,颜色就变了*/ glVertex3f(-50.0f,0.0f,0.0f); glEnd(); glFlush(); //强制刷新绘图命令 } void ChangeSize(GLsizei w,GLsizei h) { GLfloat aspectRatio; if(h==0) h=1; //防止被0所除 glViewport(0,0,w,h); //可以对窗口区域进行划分,计算机图形学中,在屏幕上打开窗口的任务是由窗口系统,而不是OpenGL负责的。 glMatrixMode(GL_PROJECTION);//重置投影矩阵堆栈 glLoadIdentity(); //在进行变换前把当前矩阵设置为单位矩阵 //使正方形不变形的工作 aspectRatio=(GLfloat)w/(GLfloat)h; if(w<=h) glOrtho(-100.0,100.0,-100/aspectRatio,100.0/aspectRatio,1.0,-1.0); //截取该区域,就保证形状不变了 else glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100,100.0,1.0,-1.0); glMatrixMode(GL_MODELVIEW); //重置模型视图堆栈 glLoadIdentity(); } void SetupRC(void) { glClearColor(0.0f,0.0f,1.0f,1.0f); //设置清除颜色 } int main(int argc, char* argv[]) { glutInit(&argc,argv); //对GLUT函数库进行初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA); //创建窗口时使用哪种类型的显示模式 glutCreateWindow("simple"); //创建glut窗口 glutDisplayFunc(RenderScene); //当窗口被绘制时,调用RenderScene函数 SetupRC();//执行渲染之前应完成的所有OpenGL初始化工作 glutReshapeFunc(ChangeSize); glutMainLoop(); // 让整个绘图循环进行,相当于死循环。 return 0; }注 :RenderScene 这个名字等价于 myDisplay
#include <windows.h> #include <glut.h> #include <math.h> float PI=3.1415926f; float R=0.8f; //半径 void myDisplay(void) { //画五角星 glClear(GL_COLOR_BUFFER_BIT); glClearColor(0,0,0,0); glColor4f(0,0,1,0); glBegin(GL_LINE_LOOP); //以下ABCDE分别是五角星的5个顶点 GLfloat xA=R*cos(90*2*PI/360); GLfloat yA=R*sin(90*2*PI/360); GLfloat xB=R*cos(306*2*PI/360); GLfloat yB=R*sin(306*2*PI/360); GLfloat xC=R*cos(162*2*PI/360); GLfloat yC=R*sin(162*2*PI/360); GLfloat xD=R*cos(18*2*PI/360); GLfloat yD=R*sin(18*2*PI/360); GLfloat xE=R*cos(234*2*PI/360); GLfloat yE=R*sin(234*2*PI/360); glVertex2f(xA,yA); glVertex2f(xB,yB); glVertex2f(xC,yC); glVertex2f(xD,yD); glVertex2f(xE,yE); glEnd(); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow("simple"); glutDisplayFunc(myDisplay); glutMainLoop(); // 让整个绘图循环进行,相当于死循环。 return 0; }