gpt4 book ai didi

java - 使用随机中心点的同心圆

转载 作者:行者123 更新时间:2023-11-30 08:13:51 34 4
gpt4 key购买 nike

我正在做一个我在网上找到的练习题,但我无法找出一个步骤。我的目标是打印 6 个随机颜色的同心圆,同时使用一个数组作为直径。

除了我的圈子不是同心的并且似乎只是彼此远离之外,我已经设法使一切正常工作。

有什么想法吗?

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
import java.awt.*;
import java.util.Random;

public class E3 {

public static int [] diameters = new int[6];

public static void main(String[] args) throws FileNotFoundException {
Scanner console = new Scanner(new File("Practice47.txt"));
int panelX = 400, panelY = 400;
DrawingPanel panel = new DrawingPanel(panelX, panelY);
panel.setBackground(Color.WHITE);
Graphics g = panel.getGraphics();
Random r = new Random();
int xCenter = r.nextInt(400);
int yCenter = r.nextInt(400);

for (int i = 0; i < diameters.length; i++) {
diameters[i]=console.nextInt();
g.setColor(new Color(r.nextInt(256),r.nextInt(256), r.nextInt(256)));
g.fillOval(xCenter, yCenter, diameters[i], diameters[i]);
}
for (int i=0;i<diameters.length;i++)
System.out.println("diameters["+i+"] = "+ diameters[i]);
}
}

这是我的输出:

enter image description here

最佳答案

您的固定点是最初创建的左上角,而不是圆圈的中间。发生这种情况是因为您使用 fillOval(leftOffset, topOffset, width, height) 指定了要在其中绘制椭圆的矩形,这与您的程序不同。

要更正此问题:

  1. 在你的情况下计算一个固定点 (x0|y0) (xCenter|yCenter),所以这步骤已经完成
  2. 使用 fillOval(x0 - d/2, y0 - d/2, d, d) 其中 d 是直径

关于java - 使用随机中心点的同心圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785034/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com