Dev C++下的一个简单的OpenGL程序

Dev C++下的一个简单的OpenGL程序,第1张

在dev c++的include目录中的gl目录下有三个opengl头文件,分别是gl.h,glu.h,glext.h没有你包含的glut.h所以会提示找不到头文件,改正后连接错误如图 :

可以看出来并没有定义你的main函数里的各种init函数,我在上述三个头文件里也没有找到这些函数,没有这些函数说明没有这些函数的库文件,当然就链接不到了。

dev c++是一个轻量级的IDE,缺少很多进行某项专门开发所需的api函数,要进行opengl开发建议你还是找下opengl sdk一类专门的开发工具,它们提供完整的这些api函数

如果已经添加了头文件,但是还是出现以上的错误,那你你应该检查是不是添加了所需的扩展库文件(*.a)了,上面的link error是因为虽然头文件有声明但链接不到库文件的原因。glut库解压后包含一个.h,一个.def,一个.lib和一个.dll文件。将.h拷贝到include目录下,.dll拷贝到windows的系统目录下(windows\system32),貌似你只将dll放在系统目录下而没有配置扩展库文件,对于库文件可以使用 reimp工具将.lib文件转换成.a文件。命令如下:

reimp glut32.lib

这样,就会在同一目录下生成一个glut32.def和一个libglut32.a文件,将libglut32.a拷贝到lib目录下。同时记得要删除原来的glut库(如果有的话),否则link时可能会出错。

上面所说的mingw-utils可在下面的地方下载到,解压后在bin里有reimp

mingw-utils-0.3:

http://sourceforge.net/project/downloading.php?groupname=mingw&ampfilename=mingw-utils-0.3.tar.gz&use_mirror=jaist

你的图形已经画出来了,但是reshape()函数写的可能有问题,所以看不到,可以在画图函数里画一个简单的红色矩形试试就知道了。

关于reshape()可以参考超级宝典里的写法(直接复制可能要注意下格式):

完整代码(不含include):

GLUquadricObj *quadObj1

void reshape(int w, int h)

{

GLfloat aspectRatio

if(h == 0)h = 1

glViewport(0, 0, w, h)

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.0, 100.0, 1.0, -1.0)

glMatrixMode(GL_MODELVIEW)

glLoadIdentity()

}

void drawAnnulus()

{

quadObj1 = gluNewQuadric()

glClear(GL_COLOR_BUFFER_BIT)

glPushMatrix()

gluQuadricDrawStyle(quadObj1,GLU_POINT)

glTranslatef(10.0,10.0,0.0)

glColor3f(1.0,1.0,1.0)

gluPartialDisk(quadObj1,15.0,25.0,15.0,10.0,10.0,100.0)

glPopMatrix()

gluDeleteQuadric(quadObj1)

glFlush()

}

int main(int argc, char *argv[])

{

glutInit(&argc,argv)

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB )

glutInitWindowPosition(0,0)

glutInitWindowSize(500,500)

glutCreateWindow("五环")

glutReshapeFunc(reshape)

glutDisplayFunc(drawAnnulus)

glutMainLoop()

return 0

}

关于补充问题:

不知道你是否已经试过改为我提供的代码。总之我改后能看到你说的圆盘。不用截图给你看吧。你的圆盘只有一小段,因为你的角度只有10-100...把整个代码贴给你吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11140981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存