gpt4 book ai didi

java - 在java中绘制多个椭圆

转载 作者:行者123 更新时间:2023-12-01 17:58:46 25 4
gpt4 key购买 nike

我目前正计划编写一些用于碰撞检测的代码。但是,我遇到了一个问题。我想在 JFrame 窗口上绘制多个球体,但以下代码不起作用...请帮助我...这是我的代码:-

    import javax.swing.*;
import java.awt.*;
class Draw extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
for(int i=0;i<20;i++)
drawing(g,new Sphere());
}
public void drawing(Graphics g,Sphere s)
{
g.setColor(s.color);
g.fillOval(s.x,s.y,s.radius*2,s.radius*2);
}
public static void main(String args[])
{
JFrame jf = new JFrame("Renderer");
jf.getContentPane().add(new Draw(),BorderLayout.CENTER);
jf.setBounds(100,100,400,300);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
class Sphere
{
int x;
int y;
int radius;
Color color;
public Sphere()
{
this.x = (int)Math.random()*100;
this.y = (int)Math.random()*100;
this.radius = (int)Math.random()*20;
this.color = new Color((int)(Math.random()*255),
(int)(Math.random()*255),(int)(Math.random()*255));
}
}

最佳答案

将随机值转换为 int,使其为 0,然后将其相乘。你的球体构造函数应该看起来像

public Sphere() {
this.x = (int) (Math.random() * 100); // cast the result to int not the random
this.y = (int) (Math.random() * 100);
this.radius = (int) (Math.random() * 20);
this.color = new Color((int) ((Math.random() * 255)), (int) (Math.random() * 255), (int) (Math.random() * 255));
}

关于java - 在java中绘制多个椭圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42531692/

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