Linjestykke.java [Last ned]

import java.awt.*;
import java.io.*;
 
/*
 * Klasse for å representere linjestykker.
 *
 */
public class Linjestykke extends Figur {
 
  private int x2;
  private int y2;
 
 
  public Linjestykke(Color f, int x1, int y1,
                     int x2, int y2 ) {
    super(f, x1, y1);
    this.x2 = x2;
    this.y2 = y2;
  }
 
 
  public void vis(Graphics g) {
    g.setColor(farge);
    g.drawLine(x, y, x2, y2);
  }
 
 
  public String egenskaper() {
    return "Linje: " + super.egenskaper() +
      ", " + lengde() + " enheter lang.";
  }
 
 
  public void merk(Graphics g) {
    g.setColor(Tegneprogram.MERKEFARGE);
    g.drawLine(x, y, x2, y2);
  }
 
 
  public int lengde() {
    Punkt p = new Punkt(x, y);
    return (int) p.avstand(x2, y2);
  }
 
 
  public boolean(Punkt p) {
    double a = y-y2;
    double b = x2-x;
    double c = y*(x-x2) + x*(y2-y);
    double avstand = Math.abs((a*p.x+b*p.y+c) /
                     Math.sqrt(a*a+b*b));
    double avst1 = p.avstand(x, y);
    double avst2 = p.avstand(x2, y2);
    int maxLengde = lengde() + Tegneprogram.TOLERANSE;
    return avstand <= Tegneprogram.TOLERANSE &&
           avst1 <= maxLengde && avst2 <= maxLengde;
  }
 
 
  public void skrivTilFil(PrintWriter fil) throws IOException {
    fil.print("L" + Tegneprogram.SKILLETEGN);
    super.skrivTilFil( fil );
    fil.println(x2 + Tegneprogram.SKILLETEGN +
                y2 + Tegneprogram.SKILLETEGN);
  }
 
}
Kildekode blir vist ved hjelp av GeSHi.