opengl绘制一个球体的程序

opengl绘制一个球体的程序,第1张

语法也有错误:glVertex3fv(&vdata [&tindices[i][0][0]])

glVertex3fv(&vdata [tindices[i][1][0]])

glVertex3fv(&vdata [tindices[i][2][0]])

改为:

glVertex3fv(vdata [tindices[i][0]])

   

glVertex3fv(vdata [tindices[i][1]])

     

glVertex3fv(vdata [tindices[i][2]])

我的运行环境是在QT IDE上运行的。4.7.0版。

如果你是在VC上运行应该也要加入opengl32,glut,glut32库(32位WIN上的),

另外,这个程序你是看不到一个球体的,因为你没有使用光照,只能看到一个轮廓。

我的Qt上我加入的库是:opengl32,glut,glee5(glee5是glee是自己编译的替换glut32库)

头加入了:windown.h,gl/glee.h(glee.h就是glee的头文件在网上可以下载,比gl.h要高级,因为WIN上的gl.h只支持到opengl32的1.1版)

源文件:

#include <windows.h>///////////////////////////////

#include <GL/glee.h>

////////////////////////////////

#include <GL\glut.h>

#include <math.h>

#define x .52573

#define z .85965

void mydisplay(void)

{

 

static GLfloat vdata[12][3]={{-x,0.0,z},

{x,0.0,z},

                              {-x,0.0,-z},

                              {x,0.0,-z},

{0.0,z,x},

{0.0,z,-x},

                              {0.0,-z,x},

                              {0.0,-z,-x},

                              {z,x,0.0},

{-z,x,0.0},

                              {z,-x,0.0},

{-z,-x,0.0}}

 static GLuint tindices[20][3]={{1,4,0},

{4,9,0},

                                {4,5,9},

                                {8,5,4},

                                {1,8,4},

{1,10,8},

{10,3,8},

                                {8,3,5},

{3,2,5},

{3,7,2},

{3,10,7},

                                {10,6,7},

                                {6,11,7},

{6,0,11},

{6,1,0},

{10,1,6},

                                {11,0,9},

                                {2,11,9},

                                {5,2,9},

                                {11,2,7}}

 int i

glBegin(GL_TRIANGLES)

 for(i=0i<20i++)

{

     

glVertex3fv(vdata [tindices[i][0]])//////////////////////////////////////////////

     glVertex3fv(vdata [tindices[i][1]])/////////////////////////////////////////////

     glVertex3fv(vdata [tindices[i][2]])////////////////////////////////////////////

 }

glEnd()

}

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

{

 glutInit(&argc, argv)

 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE)

 glutInitWindowPosition(100, 100)

 glutInitWindowSize(400, 400)

 glutCreateWindow("第一个OpenGL程序")

 glutDisplayFunc(&mydisplay)

 glutMainLoop()

 return 0

}

后面加了///////////////////////////////////是我修改了的。

我用的连接库是:

LIBS=-lopengl32 -lfreeglut -lglee5

你好,我是经常在线看GLEE的,一般网站都没有的,只有GLEE百度贴吧里在每周三或周四会发布在线观看。(因为每周二GLEE会在美国首播,字幕组周三晚上或周四才能发布字幕)这是第二季所有在线观看网址:http://tieba.baidu.com/glee/shipin/list/glee%B5%DA%B6%FE%BC%BE/ 如果有问题还可以问我或互相切磋哦~ 我也非常爱GLEE哈~


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

原文地址: http://www.outofmemory.cn/tougao/12048206.html

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

发表评论

登录后才能评论

评论列表(0条)

保存