import javax.swing.JFrame;


@SuppressWarnings("serial")
public class TurtleLineFractal extends TurtlePanel {
	
	private double degreeAngle = 72; // 72 - Taylor doodle
	private int depth = 6;
	private double angle = degreeAngle * Math.PI / 180;
	private double angle2 = Math.PI / 2 - angle;
	private double x = Math.sin(angle2) / (1 + Math.sin(angle2));
	private double sideFraction = (1 - x) / 2;
	private double size;
	
	private void line(int level, double size) {
		if (level > 0) {
	        // Todd generalization of Koch and Taylor pentagonal sides - 12/3/15
	        double sideSize = size * sideFraction;
	        line(level - 1, sideSize);
	        left(degreeAngle);
	        line(level - 1, sideSize);
	        right(2 * degreeAngle);
	        line(level - 1, sideSize);
	        left(degreeAngle);
	        line(level - 1, sideSize); 
		}
	    else {
	        forward(size);
	    }
	}
	
	@Override
	public void turtleMain() {
		size = Math.min(width, 1.8 * height);
		up();
		backward(size / 2);
		right(90);
		forward (size / 4);
		left(90);
		down();
		line(depth, size);
	}

	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(250, 250);
		frame.setTitle("Turtle Line Fractal");
		frame.add(new TurtleLineFractal());
		frame.setVisible(true);
	}

}
