Graphics2Dインスタンスに5つの正方形を描画しようとしています。5つの正方形のそれぞれは、左上隅のx座標と左上隅のy座標の両方に対してランダムなdouble値を持つ必要があります。
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
値はループの反復ごとに変化しますが、topLeftX
部分topLeftY
的にから計算されたとしても、同じままであるということですnextDouble
。
ループを通過するたびに変更したいと思いtopLeftX
ます。topLeftY