Plotter.java [Last ned]

import java.awt.*;
 
/*
 *  Klassen simulerer en plotter i et grafisk vindu.
 *
 *  Plotteren kjenner sin egen posisjon og retning,
 *  og om pennen er "nede" eller ikke. Den tilbyr
 *  metoder for forflytning (fram og tilbake), løfte
 *  og senke pennen (pennOpp og pennNed), endre retning
 *  (venstre og høyre), samt å endre pennfarge (farge).
 *
 *  Plotteren sjekker ikke om tegneoperasjoner holder
 *  seg innenfor vinduet ("arket"), det er opp til
 *  den som bruker plotteren å sjekke.
 *
 */
public class Plotter {
 
  private Graphics g;          // "Tegnevinduet"
  private int      x, y;       // Plotterens posisjon
  private int      retning;    // Plotterens retning
  private boolean  pennNede;   // Er pennen nede?
 
 
  Plotter(Graphics g, int bredde, int høyde) {
    this.g = g;
    this.x = bredde/2;    // Posisjonerer plotteren
    this.y = høyde/2;     // midt i vinduet, med
    this.retning = 90;    // retning "oppover"
    pennNed();
  }
 
 
  public void pennOpp() {
    pennNede = false;
  }
 
 
  public void pennNed() {
    pennNede = true;
  }
 
 
  public void fram(int antallSteg) {
    // Beregner nye koordinater
    int nyX = x + (int)(antallSteg * Math.cos(retning * Math.PI / 180.0));
    int nyY = y - (int)(antallSteg * Math.sin(retning * Math.PI / 180.0));
 
    // Tegn linje
    if (pennNede) {
      g.drawLine(x, y, nyX, nyY);
    }
 
    // Oppdater posisjon
    x = nyX;
    y = nyY;
  }
 
 
  public void tilbake(int antallSteg) {
    fram(-antallSteg);
  }
 
 
  public void venstre(int antallGrader) {
    retning += antallGrader;
  }
 
 
  public void høyre(int antallGrader) {
    retning -= antallGrader;
  }
 
 
  public void farge(Color farge) {
    g.setColor(farge);
  }
 
}
 
Kildekode blir vist ved hjelp av GeSHi.