TrePlotter.java [Last ned]

import java.awt.*;
import javax.swing.*;
 
 
/*
 *  Klassen subklasser JPanel for å fungere som tegneflate,
 *  og bruker Plotter for å tegne et "tre".
 *
 */
public class TrePlotter extends JPanel {
 
  private int bredde;  // Størrelsen på
  private int høyde;   // tegneflaten
 
 
  public TrePlotter(int bredde, int høyde) {
    this.bredde = bredde;
    this.høyde = høyde;
    this.setBackground(Color.WHITE);
  }
 
 
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);
 
    Plotter plotter = new Plotter(g, bredde, høyde);
    tre(plotter, 100, 8);
  }
 
 
  private void tre(Plotter p, int lengde, int orden) {
 
    int vinkel = 30;
 
    if ( orden > 0 ) {
 
      // Tegn venstre forgreining
      p.venstre(vinkel);
      p.fram(lengde);
      tre(p, lengde*3/4, orden-1);  // rekursivt kall
      p.pennOpp();
      p.tilbake(lengde);
 
      // Tegn høyre forgreining
      p.høyre(vinkel*2);
      p.pennNed();
      p.fram(lengde);
      tre(p, lengde*3/4, orden-1);  // rekursivt kall
      p.pennOpp();
      p.tilbake(lengde);
 
      // Snu tilbake til opprinnelig retning
      p.venstre(vinkel);
      p.pennNed();
    }
  }
 
}
 
 
Kildekode blir vist ved hjelp av GeSHi.