2

我有一个窗口大小 {0,0},{1e6,1e6}。我在这个区域内创建了 1000*1000 的网格。
我正在尝试在该区域创建随机点。

glEnable( GL_POINT_SMOOTH );
glEnable( GL_BLEND );
glPointSize( 200 );
for( int i = 0; i < 1e6; i++ )
{
    glColor3ub(0,255,0);
    // width and height are 1e6.
    int x = rand() % WIDTH; 
    int y = rand() % HEIGHT; 
    glBegin( GL_POINTS );
    glVertex2i( x, y );
    glEnd();
}
glFlush();  
glDisable( GL_BLEND );

x 和 y 是随机数。但是,所有点都仅绘制在窗口的左下角。

4

1 回答 1

0

确保RAND_MAX在您的平台上大于1e6. 否则,您将看到的最大 x/y 值将是RAND_MAX-1,而不是1e6您所期望的。

或者生成不带模的随机数。

于 2012-10-10T16:20:05.983 回答