OPENGL生成多边形的问题以下是我的生成函数,功能是用12点生成六芒星:void redraw(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.4,-0.3); glVertex2f(-0.4 / 3,-0.3); glVertex2f(0,-0.5); glVerte

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 09:05:43
OPENGL生成多边形的问题以下是我的生成函数,功能是用12点生成六芒星:void redraw(){  glClear(GL_COLOR_BUFFER_BIT);  glBegin(GL_POLYGON);    glVertex2f(-0.4,-0.3);    glVertex2f(-0.4 / 3,-0.3);    glVertex2f(0,-0.5);    glVerte

OPENGL生成多边形的问题以下是我的生成函数,功能是用12点生成六芒星:void redraw(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.4,-0.3); glVertex2f(-0.4 / 3,-0.3); glVertex2f(0,-0.5); glVerte
OPENGL生成多边形的问题
以下是我的生成函数,功能是用12点生成六芒星:
void redraw()
{
  glClear(GL_COLOR_BUFFER_BIT);
  glBegin(GL_POLYGON);
    glVertex2f(-0.4,-0.3);
    glVertex2f(-0.4 / 3,-0.3);
    glVertex2f(0,-0.5);
    glVertex2f(0.4 / 3,-0.3);
    glVertex2f(0.4,-0.3);
    glVertex2f(0.8 / 3,0);
    glVertex2f(0.4,0.3);
    glVertex2f(0.4 / 3,0.3);
    glVertex2f(0,0.5);
    glVertex2f(-0.4 / 3,0.3);
    glVertex2f(-0.4,0.3);
    glVertex2f(-0.8 / 3,0);
/*
    glVertex2f(-0.8 / 3,0);
    glVertex2f(-0.4,-0.3);
    glVertex2f(-0.4 / 3,-0.3);
    glVertex2f(0,-0.5);
    glVertex2f(0.4 / 3,-0.3);
    glVertex2f(0.4,-0.3);
    glVertex2f(0.8 / 3,0);
    glVertex2f(0.4,0.3);
    glVertex2f(0.4 / 3,0.3);
    glVertex2f(0,0.5);
    glVertex2f(-0.4 / 3,0.3);
    glVertex2f(-0.4,0.3);
*/
  glEnd(); // GL_QUADS
  glutSwapBuffers();
}


但是按照该函数的方式,生成的多边形是这样的:



如果按照以上注释中所示的画点顺序(最后一个点放到最前面去了),就生成正常了:



这到底是怎么回事?

OPENGL生成多边形的问题以下是我的生成函数,功能是用12点生成六芒星:void redraw(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POLYGON); glVertex2f(-0.4,-0.3); glVertex2f(-0.4 / 3,-0.3); glVertex2f(0,-0.5); glVerte
这好像是计算机内的 图形卡 问题. 查一下 图形卡 型号, 生产厂商,去厂商网站,下载它的 update 后的 与你的操作系统相配的 驱动程序(软件),更新. (就像操作系统 老要 补丁 更新一样).