0

我正在尝试在 java 中使用递归和 gpdraw 制作科赫雪花。我可以自己制作实际的科赫曲线,但我不知道如何让它一直环绕并制作雪花。

import gpdraw.*;

public class KochCurve
{
  private SketchPad myPaper;
  private DrawingTool myPencil;

  public KochCurve()
  {
    myPaper = new SketchPad(600,600);
    myPencil = new DrawingTool(myPaper);
  }

  public void draw()
  {
    drawKochCurve(6, 300);
  }

  private void drawKochCurve(double level, double sideLength)
  {
    if(level < 1)
       myPencil.forward(sideLength);

    else
    {
      drawKochCurve(level - 1, (sideLength)/3);
      myPencil.turnLeft(60);
      drawKochCurve(level - 1, (sideLength)/3);
      myPencil.turnRight(120);
      drawKochCurve(level - 1, (sideLength)/3);
      myPencil.turnLeft(60);   
      drawKochCurve(level - 1, (sideLength)/3);
    }
  }
}
4

1 回答 1

0

您必须在三角形的三个方向中的每一个上绘制相同的曲线。为此,您可以编写一个函数 drawKochCurve(double level, double sideLength, double additionalAngle) 并调用它 3 次,添加附加角度。

维基百科有更多细节:科赫最初描述的科赫曲线是由原始三角形的三个边中的一个构成的。换句话说,三个科赫曲线构成一个科赫雪花。http://en.wikipedia.org/wiki/Koch_snowflake

于 2012-10-21T19:01:28.447 回答