怎么才能使用opengl,循环绘制出三维图形?附问题代码

#include<GL/glut.h>#include<math.h>GLfloatvertex[8][3]={-0.5f,-0.5f,-0.5f,0.5f,-0.5f,... #include <GL/glut.h>
#include <math.h>

GLfloat vertex [8][3]={
-0.5f, -0.5f, -0.5f,

0.5f, -0.5f, -0.5f,

-0.5f,0.5f, -0.5f,

0.5f, 0.5f, -0.5f,

-0.5f, -0.5f,0.5f,
0.5f, -0.5f,0.5f,

-0.5f, 0.5f, 0.5f,

0.5f, 0.5f,0.5f,

};

GLint index []={
0, 2, 3, 1,
0, 4, 6, 2,
0, 1, 5, 4,
4, 5, 7, 6,
1, 3, 7, 5,
2, 6, 7, 3,
};
;

void myDisplay(void) //渲染函数
{
glClear(GL_COLOR_BUFFER_BIT);
//glRectf(150.0f, 150.0f, 300.0f, 300.0f); //画矩形
glColor3f(1.0,1.0,1.0);
glPolygonMode(GL_FRONT,GL_FILL);//设置多边形正面为填充模式
//glPolygonMode(GL_BACK,GL_LINE);//设置多边形反面为划线模式
glFrontFace(GL_CW);//设置顺时针方向为“正面”
glShadeModel(GL_SMOOTH);//设置渲染
///////////////////////////
glBegin(GL_POLYGON);
glColor3f(1.0,0.0,0.0);
for(int i=0; i<6; ++i){// 有6个面,循环6次
for(int j=0; j<4; ++j){// 每个面有4个顶点,循环4次
glVertex3fv(vertex[index[i]]);};}
glEnd();
/////////////////////////
glFlush();
}
int main(int argc, char *argv[])
{ glutInit(&argc, argv) ;
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //渲染模式
glutInitWindowPosition(100, 100); //窗口坐标
glutInitWindowSize(400, 400); //窗口像素大小
glutCreateWindow("第一个 OpenGL程序");//窗口标题
glClearColor(0.0,0.0,0.0,0.0); //背景颜色0,0,0,黑色
gluOrtho2D(0.0,400.0,0.0,400.0);//
glutDisplayFunc(&myDisplay); //指出渲染函数
glutMainLoop(); //
return 0;

}
展开
 我来答
百度网友0add78f
2014-05-20 · 超过68用户采纳过TA的回答
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:187万
展开全部
你的摄像机函数呢?就算你画出来了,也看不到?
追问
那要加什么进去?
追答
你不加进去,你怎么知道你画三维图是不是正确,不加,系统只是默认的一个视角。而且三维图,包括后面要做的场景都要提供坐标或是函数来完成的。像你上面的这样,只是按空间的几个点给出坐标,用平面来完成的。

你可以画一个简单的四面体,六个面用不同的色,试下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式