【问题标题】:Java - Circle FractalJava - 圆形分形
【发布时间】:2017-03-22 23:21:25
【问题描述】:

请帮帮我!我画圆形分形,但我只能画左侧或右侧。怎么画两边?

enter image description here

public class ZZZ {
public static void main(String[] args) {
StdDraw.setCanvasSize(1024,1024);
StdDraw.setXscale(-15,15);
StdDraw.setYscale(-15,15);
double x=0.0;
double y=0.0;
double r=5.0;
StdDraw.setPenRadius(0.01);
StdDraw.circle(x, y, r);
    int j=StdRandom.uniform(2);
    for(int s=1;s<10;s++){
    x=x+r;
    r=r/3*2;
    StdDraw.circle(x, y, r);
    }
    int k=StdRandom.uniform(2);
    for(int i=1;i<10;i++){
    x=x-r;
    r=r/3*2;
    StdDraw.circle(x, y, r);
    }}}

【问题讨论】:

  • @AndyTurner 我想你忘了一个问号......这就是原因。
  • @Wietlol 我忘了两个问号和双引号,如果你要挑剔的话。
  • 要回答实际问题,它确实会呈现,但不会呈现在您认为的位置。尝试将 X 和 R 都重置为默认值@AndyTurner 我不挑剔,我只是回答你的问题......呃...... nvm

标签: java fractals


【解决方案1】:

在第二个for-loop 中绘制圆圈之前,您应该将x 重置为0,并将r 重置为5。所以你的代码应该如下所示:

public class ZZZ {
    public static void main(String[] args) {
        StdDraw.setCanvasSize(1024,1024);
        StdDraw.setXscale(-15,15);
        StdDraw.setYscale(-15,15);

        double x=0.0;
        double y=0.0;
        double r=5.0;

        StdDraw.setPenRadius(0.01);
        StdDraw.circle(x, y, r);

        int j=StdRandom.uniform(2);
        for(int s=1;s<10;s++){
            x=x+r;
            r=r/3*2;
            StdDraw.circle(x, y, r);
        }

        x = 0.0;
        r = 5.0;
        int k=StdRandom.uniform(2);
        for(int i=1;i<10;i++){
            x=x-r;
            r=r/3*2;
            StdDraw.circle(x, y, r);
        }
    }
}

【讨论】:

  • 我不知道该怎么做。我以前做过,但是没有用。我想我写错了。
  • 非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2021-12-05
  • 1970-01-01
  • 2020-04-29
相关资源
最近更新 更多