永发信息网

opengl画立方体无法显示,怎么回事啊,就显示一个黑框,没有我要现实的立方体,谢谢各位解答啊,我是菜鸟

答案:1  悬赏:70  手机版
解决时间 2021-03-02 06:54
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-03-01 22:56
#include

void init(void){
glutInitWindowSize(200, 150);
glClearColor(0.0,0.0,0.0,0.0);
glViewport(0,0,200,150);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(90.0f,(GLfloat)200/(GLfloat)150,1.0f,1000.0f);
}

void rect(void){
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT);

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glShadeModel(GL_SMOOTH );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(1.0,0.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(0.0f, 0.0f, 0.0f); // top face
glVertex3f(0.0f, 0.0f, -1.0f);
glVertex3f(-1.0f, 0.0f, -1.0f);
glVertex3f(-1.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); // front face
glVertex3f(-1.0f, 0.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glVertex3f(0.0f, -1.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); // right face
glVertex3f(0.0f, -1.0f, 0.0f);
glVertex3f(0.0f, -1.0f, -1.0f);
glVertex3f(0.0f, 0.0f, -1.0f);
glVertex3f(-1.0f, 0.0f, 0.0f); // left face
glVertex3f(-1.0f, 0.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); // bottom face
glVertex3f(0.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); // back face
glVertex3f(-1.0f, 0.0f, -1.0f);
glVertex3f(-1.0f, -1.0f, -1.0f);
glVertex3f(0.0f, -1.0f, -1.0f);
glEnd();
glFlush();
}
void main(int argc,char** argv){
glutInit(&argc,argv);
//glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100,200);
glutCreateWindow("Draw Rect");
init();
glutDisplayFunc(rect);
glutMainLoop();
}
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-03-01 23:48
gluPerspective(90.0f,(GLfloat)200/(GLfloat)150,1.0f,1000.0f);
定义的可视范围是-1.0~-1000.0,
glBegin(GL_POLYGON);
这个是画一个多边形,就是说下边全部点都将成为多边形的一个点。
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, -1.0f);
定义的正方形的深度在0.0~-1.0,不在可视范围内。

另外正方形的顶点有错误。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯