zur KnowledgeBase
kostenlosen Counter einrichten
zur SiteMap

myself

coding

graphics

creative

links


Sprung innderhalb der Websitediese Seite weiterempfehlen
home/

     MELine
Diese Klasse bietet einen Linienalgorithmus mit dem man leicht auf die Koordinaten einer Linie Zugriff hat. Wenn man zum Beispiel eine 2x2 Matrix zwischen 2 Elementen Durchmustern möchte.

Klassenreferenz
Methode und Beschreibung
MELine()
Konstruktor, erzeugt ein Linien-Objekt mit Null-Werten.

MELine(int xs, int ys, int xe, int ye)
Konstruktor, erzeugt ein Linien-Objekt mit dem Start-Punkt (xs,ys) und dem End-Punkt (xe,ye).

public void first()
Der Zeiger wird auf den ersten Punkt der Linie gesetzt, die Linie kann abgegangen werden.

public boolean next()
Der Zeiger wird auf den nächsten Punkt der Linie in Richtung End-Punkt verschoben. Die Methode gibt True zurück, wenn es einen weiteren Punkt gab.

public int x()
public int y()

Gibt die Koordinaten (x,y) des aktuellen Punktes zurück, auf den der Zeiger verweist.

public double r()
Gibt die Richtigkeit / Abweichung des Punktes (x,y) in % an. Bei 1.0 liegt der Punkt (x,y) exakt auf der Linie (z.B. beim ersten Punkt (xs,ys) ).

public int x1()
public int y1()
public int x2()
public int y2()

Gibt die Koordinaten der Alternativ-Punkte (x1,y1) und (x2,y2) zurück. Diese Punkte befinden sich entweder über und unter dem Punkt (x,y), wenn es sich um einen flachen Anstieg handelt, oder rechts und links vom Punkt (x,y), falls der Anstieg 1 übersteigt. Diese Alternativ-Punkte können zum Beispiel für Anti-Alias-Effekte genutzt werden.

public double r1()
public double r2()

Gibt die Richtigkeit / Abweichung der Punkte (x1,y1) und (x2,y2) von der Linie in % an. Bei 0 liegen die Punkte über einen Pixel von der Linie entfernt. Mit Hilfe dieses Wertes kann der Linie aller Punkte (x,y) ein Anti-Alias-Effekt verliehen werden.


Im folgenden Beispiel wird eine Linie vom Punkt (1,1) zum Punkt (10,3) gezogen und Punkt für Punt abgegangen und die jeweiligen Koordinaten ausgegeben:

class testMELine{
 public static void main(String argv[]) {
  MELine line=new MELine(1,1,10,3);
  
  line.first();
  do {
   System.out.println(line.x()+":"+line.y());
  }while(line.next());
 }
}


>java testdraw
1:1
2:1
3:1
4:2
5:2
6:2
7:2
8:3
9:3
10:3


ZIP DateiDownload der MELine-Klasse (2 kByte Zip)




(c) 2001-2006 Enrico Minack - WWWhttp://www.maniac-site.de/ - E-Mailmail@maniacme.de