Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇:我怎样才能嵌套我的圆圈?_Java_Draw_Paint - Fatal编程技术网

Java 爪哇:我怎样才能嵌套我的圆圈?

Java 爪哇:我怎样才能嵌套我的圆圈?,java,draw,paint,Java,Draw,Paint,很难把这些圆圈放在一起。我需要它们均匀地分布在一起。你知道我做错了什么吗 import javax.swing.*; import java.awt.*; public class JNestedCircles extends JFrame { public void paint(Graphics c) { super.paint(c); setTitle("JNestedCircles"); setDefaultCloseOperati

很难把这些圆圈放在一起。我需要它们均匀地分布在一起。你知道我做错了什么吗

  import javax.swing.*;
  import java.awt.*;

  public class JNestedCircles extends JFrame
  {
    public void paint(Graphics c)
    {
    super.paint(c);
    setTitle("JNestedCircles");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    final int TOTAL_CIRCLES = 15;
    final int GAP = 17;
    int arcSize, x = 40, y = 80;
    int x1 = 500;
    int y1 = 500;
    for(arcSize = 0; arcSize < TOTAL_CIRCLES; arcSize++)
    {
        c.drawOval(x, y, x1, y1);
        x += GAP;
        y += GAP;
        x1 -= GAP ;
        y1 -= GAP ;
    }       
    }   
    public static void main(String[] args)
    {
    JNestedCircles aFrame = new JNestedCircles();
    final int WIDTH = 585;
    final int HEIGHT = 640;
    aFrame.setSize(WIDTH, HEIGHT);
    aFrame.setVisible(true);
  aFrame.setLocationRelativeTo(null);
    }
  }
import javax.swing.*;
导入java.awt.*;
公共类JNestedCircles扩展了JFrame
{
公共空间涂料(图c)
{
超级油漆(c);
setTitle(“JNestedCircles”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
最终整数总圆=15;
最终int间隙=17;
int arcSize,x=40,y=80;
int-x1=500;
int y1=500;
用于(arcSize=0;arcSize<总圆数;arcSize++)
{
c、 牵引椭圆(x,y,x1,y1);
x+=间隙;
y+=间隙;
x1-=间隙;
y1-=间隙;
}       
}   
公共静态void main(字符串[]args)
{
JNestedCircles aFrame=新JNestedCircles();
最终整数宽度=585;
最终整数高度=640;
A框架设置尺寸(宽度、高度);
aFrame.setVisible(true);
aFrame.setLocationRelativeTo(空);
}
}

看来您的想法是正确的,您只需执行以下操作:

    x1 -= 2 * GAP ;
    y1 -= 2 * GAP ;

这是因为后两个参数是宽度和高度,而不是结束位置。用指定圆左上角的增量正确偏移x,y的间距。现在,您只需要每次将宽度/高度减少2*个间隙。

不要增加
x
y
。这会改变每个圆的中心,这不是您想要的。您建议我删除for参数吗?不,我建议您删除递增
x
y
的行。如果希望每个圆的圆心相同,请不要更改坐标。此外,变量
x1
y1
是冗余的,因为它们总是具有相同的值。相反,创建一个变量
r
radius
arcSize
似乎是一个误导性的名称<代码>循环计数更合适。嗯……我应该看一下文档。我错误地假设
x
y
是中心。