package recursion;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JApplet;
import javax.swing.JFrame;

public class DrawRuler extends JApplet {

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setPaint(Color.red);
        drawRuler(g2, 0, 300, 6);
        
//        g2.setPaint(Color.blue);
//        drawRuler(g2, 300, g.getClipBounds().width, 6);
    }

    private void drawRuler(Graphics g, int left, int right, int level) {
        if (level < 1)
            return;

        int mid = (left + right) / 2;

        g.drawLine(mid, 80, mid, 80 - level * 5);

        drawRuler(g, left, mid - 1, level - 1);
        drawRuler(g, mid + 1, right, level - 1);
    }

    public static void main(String s[]) {
        JFrame f = new JFrame("ShapesDemo2D");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        JApplet applet = new DrawRuler();
        f.getContentPane().add("Center", applet);
        f.pack();
        f.setSize(new Dimension(300, 150));
        f.setVisible(true);
    }
}
