1

我正在尝试在 Visual C++ 中使用 OpenGL 构建六边形模型。我不知何故未能检索到正确的输出。

#include <windows.h>
#include <glut.h>
#include <math.h>

float x, inc = 3.14/6, pi = 3.14;

void RenderScene()
{   
    glColor3f(1,1,0);
    for ( x=0.0; x<2*pi; x=x+inc )
    {
        glBegin(GL_LINE_STRIP);
            glVertex2f(cos(x),sin(x));
        glEnd();
    }
}

void myDisplay(void)
{
    glEnable(GL_CULL_FACE);
    glEnable(GL_DEPTH_TEST);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        RenderScene();
    glPopMatrix();
    glFlush();
}

void SetupRC(void)
{
    glClearColor(0.0, 0.0, 1.0, 1.0);
    glOrtho(-5.0,5.0,-5.0,5.0,-5.0,5.0);
}

void main(void)
{
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(640,480);
    glutInitWindowPosition(10,15);
    glutCreateWindow("Rofans Manao");
    glutDisplayFunc(myDisplay);
    SetupRC();
    glutMainLoop();
}

以上是我的代码。我的代码以前可以工作。我相信我犯了一些看不见的错误。

4

1 回答 1

7

RenderScene()现在有以下循环:

for ( x=0.0; x<2*pi; x=x+inc )
{
    glBegin(GL_LINE_STRIP);
        glVertex2f(cos(x),sin(x));
    glEnd();
}

我想你打算这样

glBegin(GL_LINE_STRIP);
for ( x=0.0; x<2*pi; x=x+inc )
{
    glVertex2f(cos(x),sin(x));
}
glEnd();

相反,为了出现某种形式的线带。

于 2012-07-25T11:39:50.040 回答