关闭

Code::Blocks配置OpenGL开发环境

标签: opengl
408人阅读 评论(0) 收藏 举报
分类:

先在网上下载好glut相关配置文件(比如.lib,.dll,.h文件等等)。

下面给两个链接(或者自行去官网也可以):
[1](http://download.csdn.net/detail/u014306011/9535916)
[2](http://download.csdn.net/detail/u014306011/9535912)

下载下来的 GLUT压缩包应该至少包括 glut.dll, glut.h, glut.lib, glut32.dll, glut32.lib这些文件。
接着,

  将所有.h 放在 CodeBlocks所在目录中的MinGW\include\GL 下
  将所有.lib 放在 CodeBlocks所在目录中的MinGW\lib 下
  将所有.dll 放在 C:\windows\System32 下,要是你是32位的系统就放在System32目录下就好,要是64位的应该是放在SysWOW64.(要是为了稳妥,就两个都放,反正这几个dll文件又不是很大。)
  新建工程,在Open -> Project -> GLUT projcet
  在Setting -> Compiler -> Linker settings里面的Link libaries 中选择Add添加刚刚那两个.lib文件所在的目录,之后选择OK,搞定。

记得之后的文件中头文件的顺序要把#include

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

void drawing(){
    GLfloat x,y,z=-50.0f,inc=0,angle;
    glPushMatrix();
    glRotatef(-45.0f,1.0f,0.0f,0.0f);
    glRotatef(15.0f,0.0f,1.0f,0.0f);
    glColor3f(1.0f,0.0f,0.0f);
    glBegin(GL_POINTS);
        for(angle=0.0f;angle<=2.0f*3.14159f*3.0f;angle+=0.1f){
            x=inc*sin(angle);
            y=inc*cos(angle);
            glVertex3f(x,y,z);
            z+=0.5f;
            inc+=0.3f;
        }
    glEnd();
    glPopMatrix();
    glutSwapBuffers();
}

void onDisplay(){
    glClear(GL_COLOR_BUFFER_BIT);
    drawing();
}

void onReshape(int w,int h){
    GLfloat aspectRatio=(GLfloat)w/(GLfloat)h;  //计算窗口的长宽比
    GLfloat nRange=100.0f;
    glViewport(0,0,w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if(w<=h)
        glOrtho(-nRange,nRange,-nRange/aspectRatio,nRange/aspectRatio,-nRange,nRange);
    else
        glOrtho(-nRange,nRange,-nRange*aspectRatio,nRange*aspectRatio,-nRange,nRange);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

int main(int argc,char*argv[]){
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
    glutInitWindowSize(400,400);
    glutInitWindowPosition(300,300);
    glutCreateWindow("It's the polyline.");
    glutDisplayFunc(onDisplay);
    glutReshapeFunc(onReshape);
    glClearColor(2.0f,4.0f,0.0f,0.0f);  //设置背景颜色
    glutMainLoop();
    return 0;
}

好吧,这样应该就可以了。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29175次
    • 积分:462
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    music