title: Pythagoras tree with g2d
body: <p>I'm trying to build my first fractal (Pythagoras Tree):</p>
  
  <p><a href="http://img13.imageshack.us/img13/926/lab6e.jpg" rel="nofollow noreferrer">alt text http://img13.imageshack.us/img13/926/lab6e.jpg</a></p>
  
  <p>in Java using Graphics2D. Here's what I have now :</p>
  
  <pre><code>import java.awt.*;
  import java.awt.geom.*; 
  import javax.swing.*;
  import java.util.Scanner;
  
  public class Main {
  
  public static void main(String[] args) {
  
      int i=0;
      Scanner scanner = new Scanner(System.in);
  
      System.out.println("Give amount of steps: ");
      i = scanner.nextInt();
  
      new Pitagoras(i);
      }
  }
  
  class Pitagoras extends JFrame {
  
  private int powt, counter;
  
  public Pitagoras(int i) {
      super("Pythagoras Tree.");
      setSize(1000, 1000);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
      powt = i;
  }
  
  private void paintIt(Graphics2D g) {
  
      double p1=450, p2=800, size=200;
  
      for (int i = 0; i &lt; powt; i++) {
          if (i == 0) {
              g.drawRect((int)p1, (int)p2, (int)size, (int)size);
              counter++;
          }
          else{
              if( i%2 == 0){
                  //here I must draw two squares
              }
              else{
                  //here I must draw right triangle
              }
          }
      }
  }
  
  @Override
  public void paint(Graphics graph) {
  
      Graphics2D g = (Graphics2D)graph;
      paintIt(g);
  
  }
  </code></pre>
  
  <p>So basically I set number of steps, and then draw first square (p1, p2 and size). Then if step is odd I need to build right triangle on the top of square. If step is even I need to build two squares on free sides of the triangle. What method should I choose now for drawing both triangle and squares ? I was thinking about drawing triangle with simple lines transforming them with AffineTransform but I'm not sure if it's doable and it doesn't solve drawing squares.</p>