我的任务是画一个圆圈,然后在不接触边的情况下用最多的圆圈填充。我可以画圆,我可以制作循环以六边形/蜂窝格式打包圆,但无法控制它们是在圆内还是在圆外。
我用过这个:g.drawOval(50, 50, 300, 300); 指定我的圈子。鉴于我实际上指定了一个正方形作为我的边界,我实际上无法确定圆的边界在哪里。所以我基本上是在包装满是圆圈的正方形而不是满是圆圈的圆圈。
有人可以指出我正确的方向吗?我是java新手,所以不确定我是否以完全错误的方式完成了这项工作。我的代码如下。我有另一个框架类和另一个主类。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DrawCircle extends JPanel
{
private int width, height, diameter;
public DrawFrame d;
public DrawCircle()
{
width = 400;
height = 400;
diameter = 300;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.blue);
g.drawOval(50, 50, 300, 300);
for(int i=50; i<200; i=i+20)
{
for(int j=50; j<350; j=j+10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=60; i<200; i=i+20)
{
for(int j=55; j<350; j=j+10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=330; i>190; i=i-20)
{
for(int j=340; j>40; j=j-10)
{
g.drawOval(j, i, 10, 10);
}
}
for(int i=340; i>190; i=i-20)
{
for(int j=345; j>40; j=j-10)
{
g.drawOval(j, i, 10, 10);
}
}
}
}