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 に答える