2012-10-10 107 views
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是随机数。但是,所有点只在窗口的左下方绘制。

+0

您打电话给glViewport吗?什么是它的论据?你的视口可能不是矩形(0,0) - >(WIDTH,HEIGHT) –

+0

我已经通过了实际的宽度和高度。我猜想生成的随机数字太小,所以他们只出现在左下角。我想要均匀分布的点。你能否告诉我是否有更好的方法? – user1302064

+0

我想要生成1000000个点 – user1302064

回答

0

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

或者生成随机数字without modulo