Koch スノーフレークを完全に描画するようにアプリケーションをコーディングしましたが、デバッガーを何度使用しても、この行の再帰プロセスとdrawKochCurve
(level - 1, segmentSize);
フラクタル曲線がどのように発生するかを理解できません。
これは私の AP の「再帰」プロジェクトでしたが、先生が教えてくれた再帰の例のほとんどを実際に理解したにもかかわらず、これを理解することはできませんでした。
私のコード:
import gpdraw.*;
public class buildShape {
public SketchPad paper = new SketchPad(700,700);
public DrawingTool pencil = new DrawingTool(paper);
public buildShape(){
drawKochCurve(2,100);
pencil.setDirection(-30);
drawKochCurve(2,400);
pencil.setDirection(-150);
drawKochCurve(2,400);
}
private void drawKochCurve(int level, double initialSize){
double segmentSize = initialSize / 3;
if (level < 1){
pencil.forward(initialSize);
} else {
drawKochCurve(level - 1, segmentSize);
pencil.turnLeft(60);
drawKochCurve(level - 1, segmentSize);
pencil.turnRight(120);
drawKochCurve(level - 1, segmentSize);
pencil.turnLeft(60);
drawKochCurve(level - 1, segmentSize);
}
}
}