2012-07-25 89 views
1

我想在Visual C++中使用OpenGL建立六邊形模型。我以某種方式沒有設法檢索正確的輸出。OpenGL無法渲染場景使用Visual C++編譯器

#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(); 
} 

以上是我的代碼。我的代碼以前曾經工作過。我相信我做了一些看不見的錯誤。

+1

*「我的代碼曾經工作過」*所以,你改變了什麼?它以何種方式不再正確?你現在得到什麼? – Bart 2012-07-25 11:36:09

回答

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(); 

而是某種形式的線帶的出現。

+0

謝謝你的回答 – rofans91 2012-07-25 11:48:52