2013-10-27 76 views
0

我正在用gl_line_strip創建簡單的10x10迷宮。我有兩種關於隨機數生成的形狀。問題是,它永諾產生相同隨機數(在我的情況下,零)opengl隨機數生成

void display(void){ 
glClear(GL_COLOR_BUFFER_BIT); 
glColor3f(1.0, 0.0, 0.0); 
GLdouble myArray[2] ={0,0.1}; 
GLint a; 
srand(time(0)); 
for (int i = 0; i < 10; i++) 
{ 
    glPushMatrix(); 
    for (int i = 0; i < 10; i++) 
    { 
     glBegin(GL_LINE_STRIP); 
     a = myArray[(rand() % 2)]; 
     std::cout<<a; 
     if(a == 0.1){ 
      glVertex2f(0,a); 
      glVertex2f(a,a); 
      glVertex2f(a,0); 
     }else{ 
      glVertex2f(0.1,a); 
      glVertex2f(a,a); 
      glVertex2f(a,0.1);} 
     glEnd(); 
     glTranslatef(0.1,0,0); 
    } 
    glPopMatrix(); 
    glTranslatef(0,0.1,0); 
} 
glFlush();} 

回答

2
a = myArray[(rand() % 2)]; 

這裏是你的問題:一個是int,myArray的只包含雙打< 0.5,所以做作意味着四捨五入,因此所有您的結果爲0.您必須將a的類型更改爲double