2012-11-09 81 views
-1

我想繪製5個方塊到Graphics2D實例上。 5個方格中的每一個對於左上角x座標和左上角y座標應該具有隨機雙值。for循環中的隨機變量

double pixelSize = 2.0; 

g2d.setColor(color); 

for (int i = 0; i < 5; i++) { 
    double nextDouble = gen.nextDouble(); 
    System.out.println("nextDouble: "+nextDouble); 
    double topLeftX = nextDouble*(maxX-minX) + minX; 
    System.out.println("topLeftX: "+topLeftX); 
    double topLeftY = nextDouble*(maxY-minY) + minY; 
    System.out.println("topLeftY: "+topLeftY); 

    Shape square = new Rectangle2D.Double(topLeftX, topLeftY, pixelSize, pixelSize); 
    g2d.fill(square); 
    repaint(); 
    revalidate(); 
} 

相反,我從println報表看,就是nextDouble值在循環的每次迭代變化,但topLeftXtopLeftY保持不變,即使他們是從nextDouble部分計算。

我想topLeftXtopLeftY每次都改變循環。

+3

你在'maxX'&'minX'中有什麼價值? –

+1

也在'maxY'和'minY' – Abubakkar

+0

什麼是你的maxY和minY – smk

回答

1

他們正在改變,但只在小數點後面的數字,正如人們所預料給出的代碼,並在maxX的,其minX和MAXY-MINY單位的差異:

nextDouble: 0.731057369148862 
topLeftX: 394.73105736914886 
topLeftY: 188.73105736914886 
nextDouble: 0.07099203475193139 
topLeftX: 394.07099203475195 
topLeftY: 188.07099203475192 

...

+0

好吧,我會被詛咒的,非常感謝! – Don