gishur.x
Class XRay

java.lang.Object
  |
  +--gishur.x.XObject
        |
        +--gishur.x.XBaseline
              |
              +--gishur.x.XRay
All Implemented Interfaces:
AffineXTransformable, java.lang.Cloneable, Cloneable, Intersectable, java.io.Serializable

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

Ein Strahl in Weltkoordinaten. Ein Strahl ist auch eine XBaseline.

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
XRay()
          Leerer Konstruktor.
XRay(double x1, double y1, double x2, double y2)
          Konstruiert einen Strahl durch die Punkte (x1,y1) und (x2,y2).
XRay(XPoint s, double slope, byte dir)
          Konstruiert eine Gerade durch den Punkt s mit der Steigung slope und der Richtung dir.
XRay(XPoint s, XPoint t)
          Konstruiert einen Strahl durch die Punkte s und t.
XRay(XRay r)
          Copy-Konstruktor.
 
Method Summary
 XPoint calculatePoint(double x)
          Berechnet den Punkt auf dem Strahl, der die x-Koordinate x besitzt.
 XPoint calculatePointOn(double length)
          Berechnet den Punkt auf dem Strahl, der vom Start aus length entfernt liegt.
 boolean contains(double x, double y)
          Liefert true, falls das Objekt den Punkt (x,y) enthält, d.h. der Schnitt mit dem Punkt nicht leer ist.
 void copy(XRay s)
          Copy-Routine übernimmt Daten von anderen Objekten.
 boolean equals(java.lang.Object O)
          Überschreibt Object.equals(Object)
 boolean incident(XBaseline b)
          Liefert true, falls sich dieses Objekt und b in einem Randpunkt berühren.
 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, byte dir)
          Konstruiert einen Strahl beginnend bei dem Punkt s mit der Steigung slope und der Richtung dir.
 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 point, boolean slope, boolean direction)
          Liefert einen String mit Angaben über das Objekt.
 
Methods inherited from class gishur.x.XBaseline
angle, angle, closestPoint, copyInfiniteChain, direction, flip, getDirectionVector, getInfiniteBoundIndex, getInfiniteBounds, getInfiniteEndPoint, getInfinitePoint, getInfiniteSegment, getPointInLineDirection, horizontal, 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
 

Constructor Detail

XRay

public XRay()
Leerer Konstruktor. Erzeugt einen Strahl vom Nullpunkt nach rechts mit Steigung 0.

XRay

public XRay(double x1,
            double y1,
            double x2,
            double y2)
Konstruiert einen Strahl durch die Punkte (x1,y1) und (x2,y2). Als Source-Punkt wird (x1,y1) genommen.
Parameters:
x1,y1 - erster Punkt, durch den der Strahl gelegt wird
x2,y2 - zweiter Punkt, durch den der Strahl gelegt wird

XRay

public XRay(XPoint s,
            XPoint t)
Konstruiert einen Strahl durch die Punkte s und t. Als Source-Punkt wird s genommen.
Parameters:
s - erster Punkt, durch den der Strahl gelegt wird
t - zweiter Punkt, durch den der Strahl gelegt wird

XRay

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

XRay

public XRay(XRay r)
Copy-Konstruktor.
Parameters:
r - Objekt, von dem Daten übernommen werden
Method Detail

copy

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

toString

public java.lang.String toString(boolean point,
                                 boolean slope,
                                 boolean direction)
Liefert einen String mit Angaben über das Objekt.
Parameters:
point - Quell-Punkt Angabe ist enthalten
slope - Steigungsinformation enthalten
direction - Richtungsinformationen 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,
                byte dir)
Konstruiert einen Strahl beginnend bei dem Punkt s mit der Steigung slope und der Richtung dir.
Parameters:
s - Punkt, durch den der Strahl gelegt wird
slope - Steigung (dies ist kein Winkel!)
dir - Richtung, in die der Strahl zeigen soll.

calculatePoint

public XPoint calculatePoint(double x)
Berechnet den Punkt auf dem Strahl, der die x-Koordinate x besitzt. Falls es keinen solchen Punkt auf dem Strahl gibt, wird null zurückgegeben.
Overrides:
calculatePoint in class XBaseline
Parameters:
x - X-Koordinate
Returns:
Punkt auf dem Strahl

calculatePointOn

public XPoint calculatePointOn(double length)
Berechnet den Punkt auf dem Strahl, der vom Start aus length entfernt liegt. Gibt es keinen Punkt auf dem Strahl in dieser Entfernung, wird 0 zurückgegeben.
Parameters:
length - Entfernung vom Start aus
Returns:
Punkt auf dem Strahl in einer Entfernung von length vom Start aus

incident

public boolean incident(XBaseline b)
Liefert true, falls sich dieses Objekt und b in einem Randpunkt berühren.
Overrides:
incident in class XBaseline
Parameters:
b - XBaseline-Objekt, mit dem Berührung getestet wird.
Returns:
true, falls die Objekte inzidieren
See Also:
XBaseline.incident(gishur.x.XBaseline)

contains

public boolean contains(double x,
                        double y)
Liefert true, falls das Objekt den Punkt (x,y) enthält, d.h. der Schnitt mit dem Punkt nicht leer ist.
Specified by:
contains in interface Intersectable
Overrides:
contains in class XBaseline
Parameters:
x,y - Koordinaten des Punktes
Returns:
true, falls Schnitt nicht leer.

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.