opengl随机数生成

时间:2013-10-27 20:35:10

标签: opengl random srand

我使用gl_line_strip创建简单的10x10迷宫。关于生成的随机数,我有两种形状。问题是它始终生成相同的随机数(在我的情况下为零)

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

1 个答案:

答案 0 :(得分:2)

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

这是你的问题:a是一个int,myArray只包含双打&lt; 0.5,所以效果意味着舍入,所以你的所有结果都是0.你必须将a的类型更改为double