Anyways, here's the code for the snowflake:
/**************************************************
* Compilation: javac KochSnowFlake.java
* Execution: java KochSnowFlake N
* Dependencies: StdDraw.java Turtle.java
*
* Plot an order N Koch snowflake
*
* % java KochSnowFlake 3
*
***************************************************/
public class KochSnowFlake {
private Turtle turtle; // for turtle graphics
private double size; // size of each line segment
public KochSnowFlake(int N) {
int width = 512;
int height = (int) (2 * width / Math.sqrt(3));
size = width / Math.pow(3.0, N);
turtle = new Turtle(0, width * Math.sqrt(3) / 2, 0.0);
turtle.setCanvasSize(width, height);
turtle.setXscale(0, width);
turtle.setYscale(0, height);
// three Koch curves in the shape of an equilateral triangle
koch(N);
turtle.turnLeft(-120);
koch(N);
turtle.turnLeft(-120);
koch(N);
}
public void koch(int n) {
if (n == 0) {
turtle.goForward(size);
}
else {
koch(n-1);
turtle.turnLeft(60);
koch(n-1);
turtle.turnLeft(-120);
koch(n-1);
turtle.turnLeft(60);
koch(n-1);
}
}
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
new KochSnowFlake(N);
}
}
Using java KochSnowFlake 3 and java KochSnowFlake 4, I was able to generate the images required for the assignment:
You'll probably want these also... Turtle.java and StdDraw.java.



Thanks! Exactly what I needed!
ReplyDeleteAwesome!
ReplyDeleteThanks
ReplyDelete