为什么 glutWireCube() 不显示我的线立方体?
Why glutWireCube() does not display my wire cube?
我是 OpenGL 的新手,我读到 glutWireCube
绘制了一个线立方体。现在当我 运行 我的代码时它没有出现,我想知道它有什么作用?它绘制的是立方体还是我的代码哪里出错了?
#include<GL/glut.h>
GLdouble cubeSize= 10.0;
//FUNCTIONS DECLARATIONS - PROTOTYPES
void init(void);
void display(void);
int main(int argc, char ** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE |GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(500,500);
glutCreateWindow("Wire Cube");
init();
glutDisplayFunc(display);
glutMainLoop();
}
//FUNCTIONS IMPLEMENTAION - DEFINITION
void init(void){
glClearColor(0.0,0.0,1.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
void display(void){
glBegin(GL_POLYGON);
glutWireCube(5.0);
glEnd();
glFlush();
}
不允许在 glBegin
/glEnd
块内调用 glutWireCube
。只有 glVertex
指定顶点和设置某些顶点属性的当前值的所有函数(如 glNormal
、glColor
、...)可以在那里使用。
未指定 glutWireCube
的内部工作方式。它也可以使用即时模式,但在这种情况下,它将执行自己的 glBegin
/glEnd
调用。
从概念上讲,尝试将立方体放入 GL_POLYGON
中也是行不通的。 GL_POLYGON
用于绘制单、平、凸多边形,完全是不可能将整个立方体绘制为一个多边形。
此外,您没有设置任何 GL_MODELVIEW
或 GL_PROJECTION
矩阵。这意味着您直接在剪辑 space 中绘制,而大小为 5 的 glutWireCube
将绘制一个完全位于视锥体之外的立方体,因此您什么也看不到。
我是 OpenGL 的新手,我读到 glutWireCube
绘制了一个线立方体。现在当我 运行 我的代码时它没有出现,我想知道它有什么作用?它绘制的是立方体还是我的代码哪里出错了?
#include<GL/glut.h>
GLdouble cubeSize= 10.0;
//FUNCTIONS DECLARATIONS - PROTOTYPES
void init(void);
void display(void);
int main(int argc, char ** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE |GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(500,500);
glutCreateWindow("Wire Cube");
init();
glutDisplayFunc(display);
glutMainLoop();
}
//FUNCTIONS IMPLEMENTAION - DEFINITION
void init(void){
glClearColor(0.0,0.0,1.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
}
void display(void){
glBegin(GL_POLYGON);
glutWireCube(5.0);
glEnd();
glFlush();
}
不允许在 glBegin
/glEnd
块内调用 glutWireCube
。只有 glVertex
指定顶点和设置某些顶点属性的当前值的所有函数(如 glNormal
、glColor
、...)可以在那里使用。
未指定 glutWireCube
的内部工作方式。它也可以使用即时模式,但在这种情况下,它将执行自己的 glBegin
/glEnd
调用。
从概念上讲,尝试将立方体放入 GL_POLYGON
中也是行不通的。 GL_POLYGON
用于绘制单、平、凸多边形,完全是不可能将整个立方体绘制为一个多边形。
此外,您没有设置任何 GL_MODELVIEW
或 GL_PROJECTION
矩阵。这意味着您直接在剪辑 space 中绘制,而大小为 5 的 glutWireCube
将绘制一个完全位于视锥体之外的立方体,因此您什么也看不到。