gishur.x
Class XLine

java.lang.Object
  |
  +--gishur.x.XObject
        |
        +--gishur.x.XBaseline
              |
              +--gishur.x.XLine
All Implemented Interfaces:
AffineXTransformable, java.lang.Cloneable, Cloneable, Intersectable, java.io.Serializable
Direct Known Subclasses:
XHalfplane

public class XLine
extends XBaseline
implements Intersectable, java.lang.Cloneable

Ein Geradenobjekt ind Welkoordinaten (double-Werte). Segmente und Strahlen sind ebenfalls Geraden.

Version:
2.0
Author:
Thomas Wolf
See Also:
Serialized Form

Fields inherited from class gishur.x.XBaseline
DIRECTION_DOWN, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, INFINITE_BOUND
 
Constructor Summary
XLine()
          Leerer Konstruktor.
XLine(double x1, double y1, double x2, double y2)
          Konstruiert eine Gerade durch die Punkte (x1,y1) und (x2,y2).
XLine(XBaseline l, XBaseline r)
          Konstruiert die Winkelhalbierende Gerade zwischen l und r.
XLine(XLine l)
          Copy-Konstruktor.
XLine(XPoint s, double slope)
          Konstruiert eine Gerade durch den Punkt s mit der Steigung slope.
XLine(XPoint s, XPoint t)
          Konstruiert eine Gerade durch die Punkte s und t.
 
Method Summary
 void copy(XLine l)
          Copy-Routine übernimmt Daten von anderen Objekten.
 boolean equals(java.lang.Object O)
          Überschreibt Object.equals(Object)
 Intersection intersection(java.lang.Object O)
          Schneidet dieses Objekt mit dem Objekt O und liefert ein entsprechendes Intersection-Objekt.
 void set(XPoint s, double slope)
          Konstruiert eine Gerade durch den Punkt s mit der Steigung slope.
 boolean supportsIntersection(java.lang.Object O)
          Liefert true, falls diese Klasse den Schnitt mit dem übergebenen Objekt unterstützt.
 java.lang.String toString()
          Überschreibt Object.toString().
 java.lang.String toString(boolean slope, boolean y_abs)
          Liefert einen String mit Angaben über das Objekt.
 
Methods inherited from class gishur.x.XBaseline
angle, angle, calculatePoint, closestPoint, contains, copyInfiniteChain, direction, flip, getDirectionVector, getInfiniteBoundIndex, getInfiniteBounds, getInfiniteEndPoint, getInfinitePoint, getInfiniteSegment, getPointInLineDirection, horizontal, incident, liesOn, oppositeDirection, orientation, orthogonal, orthogonal, parallel, plumb, plumbTo, rotate, rotate, rotateTo, scale, set, set, similarDirection, slope, source, target, transform_XObject, transform, translate, vector, vertical, y_abs
 
Methods inherited from class gishur.x.XObject
clone, copy, getMutable, inverseTransform_XObject, mutable, restoreMutability, rotate_XObject, scale_XObject, transform_XObject, translate_XObject, translate_XObject
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface gishur.x.Intersectable
contains
 

Constructor Detail

XLine

public XLine()
Leerer Konstruktor. Erzeugt eine Gerade mit Steigung 0.

XLine

public XLine(double x1,
             double y1,
             double x2,
             double y2)
Konstruiert eine Gerade durch die Punkte (x1,y1) und (x2,y2). Als Source-Punkt wird (x1,y1) genommen.
Parameters:
x1,y1 - erster Punkt, durch den die Gerade gelegt wird
x2,y2 - zweiter Punkt, durch den die Gerade gelegt wird

XLine

public XLine(XPoint s,
             XPoint t)
Konstruiert eine Gerade durch die Punkte s und t. Als Source-Punkt wird s genommen.
Parameters:
s - erster Punkt, durch den die Gerade gelegt wird
t - zweiter Punkt, durch den die Gerade gelegt wird

XLine

public XLine(XPoint s,
             double slope)
Konstruiert eine Gerade durch den Punkt s mit der Steigung slope.
Parameters:
s - Punkt, durch den die Gerade gelegt wird
slope - Steigung (dies ist kein Winkel!)

XLine

public XLine(XLine l)
Copy-Konstruktor.
Parameters:
l - Objekt, von dem Daten übernommen werden

XLine

public XLine(XBaseline l,
             XBaseline r)
Konstruiert die Winkelhalbierende Gerade zwischen l und r. Die beiden XBaseline-Objekte müssen gleich orientiert sein. Die Winkelhalbierende ist in Richtung der beiden Geradenobjekte orientiert.
Parameters:
l,r - zwei Geradenobjekte
Method Detail

copy

public void copy(XLine l)
Copy-Routine übernimmt Daten von anderen Objekten.
Parameters:
l - Objekt, von dem Daten übernommen werden

toString

public java.lang.String toString(boolean slope,
                                 boolean y_abs)
Liefert einen String mit Angaben über das Objekt.
Parameters:
slope - Steigungsinformation enthalten
y_abs - y_abs-Informationen enthalten
Returns:
String-Repräsentation des Objektes

toString

public java.lang.String toString()
Überschreibt Object.toString().
Overrides:
toString in class XBaseline
See Also:
Object.toString()

equals

public boolean equals(java.lang.Object O)
Überschreibt Object.equals(Object)
Overrides:
equals in class XBaseline
Parameters:
O - Objekt, mit dem verglichen werden soll
Returns:
true, falls Objekte gleich
See Also:
Object.equals(java.lang.Object)

set

public void set(XPoint s,
                double slope)
Konstruiert eine Gerade durch den Punkt s mit der Steigung slope.
Parameters:
s - Punkt, durch den die Gerade gelegt wird
slope - Steigung (dies ist kein Winkel!)

supportsIntersection

public boolean supportsIntersection(java.lang.Object O)
Liefert true, falls diese Klasse den Schnitt mit dem übergebenen Objekt unterstützt. Hier sollte wirklich nur dann true zurückgegeben werden, wenn in dieser Klasse eine entsprechende Schnittroutine existiert.
Specified by:
supportsIntersection in interface Intersectable
Overrides:
supportsIntersection in class XBaseline
Parameters:
O - zu schneidendes Objekt
Returns:
true, falls Schnittest erfolgen kann

intersection

public Intersection intersection(java.lang.Object O)
Schneidet dieses Objekt mit dem Objekt O und liefert ein entsprechendes Intersection-Objekt. Dieses ist immer !=null, was nicht heißt, daß ein Schnitt existiert. Existiert keine passende Schnittmethode in dieser Klasse, so wird versucht, die Schnittmethode des Objektes O aufzurufen, falls vorhanden. Schlägt alles fehl, so wird ein IntersectionException ausgelöst (der nicht unbedingt abgefangen werden muß, da es ein RuntimeException ist.
Specified by:
intersection in interface Intersectable
Overrides:
intersection in class XBaseline
Parameters:
O - zu schneidendes Objekt
Throws:
IntersectionException - falls der Schnitt nicht durchgeführt werden konnte.