2012-10-10 108 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