|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--gishur.x.XObject | +--gishur.x.XBaseline
Ein Grundobjekt für Geraden, Strahlen und Segmente.
Field Summary | |
static byte |
DIRECTION_DOWN
Richtungskonstante. |
static byte |
DIRECTION_LEFT
Richtungskonstante. |
static byte |
DIRECTION_RIGHT
Richtungskonstante. |
static byte |
DIRECTION_UP
Richtungskonstante. |
static double |
INFINITE_BOUND
Schranke für 'unendliche Segmente' |
Constructor Summary | |
XBaseline()
|
Method Summary | |
double |
angle()
Liefert den Winkel, den die Gerade mit der X-Achse bildet. |
double |
angle(XBaseline l)
Liefert den Winkel, den das Linienobjekt mit dem Linienobjekt l bildet. |
XPoint |
calculatePoint(double x)
Berechnet den Punkt auf der Geraden, der die x-Koordinate x besitzt. |
XPoint |
closestPoint(XPoint point)
Liefert den zu point nächsten Punkt auf dem Rand. |
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. |
static void |
copyInfiniteChain(XPoint p1,
XPoint p2,
XPoint[] array,
int start)
Kopiert die Kette von Punkten der unendlichen Boundingbox zwischen p1 und p2 in das Array array ab Index start. |
byte |
direction()
Liefert die Richtung, in die die gerichtete Gerade zeigt. |
boolean |
equals(java.lang.Object O)
Überschreibt Object.equals(Object) |
void |
flip()
Dreht das Linienelement um, vertauscht also source() mit target(). |
XPoint |
getDirectionVector()
Liefert einen Richtungsvektor der XBaseline. |
static int |
getInfiniteBoundIndex(XPoint p)
Liefert den Index des Segmentes der Bounding Box, auf der der Punkt p liegt oder -1, falls er nicht auf dem Rand der Bounding Box liegt. |
static XPolygon |
getInfiniteBounds()
Liefert die Bounding-Box als XPolygon. |
XPoint |
getInfiniteEndPoint(boolean forward)
Liefert einen (eventuell unendlichen) Endpunkt des Linienobjektes. unendlich heißt in diesem Zusammenhang den Schnittpunkt mit der Bounding Box (INFINITE_BOUND). |
static XPoint |
getInfinitePoint(int i)
Liefert den Eckpunkt Nummer i der unendlichen Bounding Box. |
XSegment |
getInfiniteSegment()
Liefert das 'unendliche Segment' zu diesem Linienobjekt. |
XPoint |
getPointInLineDirection(XPoint start,
double length)
Liefert den Punkt, der von start aus genau length entfernt in Richtung der Geraden liegt. |
boolean |
horizontal()
Liefert true, falls die Gerade horizontal ist. |
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. |
boolean |
liesOn(XPoint q)
Liefert true, falls p auf der Geraden liegt. |
static byte |
oppositeDirection(byte direction)
Liefert die entgegengesetzte Richtung zur Richtung direction. |
byte |
orientation(XPoint p)
Testet, ob der Punkt p auf der rechten oder linken Seite der Geraden liegt. |
XLine |
orthogonal()
Berechnet die orthogonale Gerade. |
XLine |
orthogonal(XPoint point)
Berechnet die orthogonale Gerade durch den Eingabepunkt. |
boolean |
parallel(XBaseline l)
Liefert true, falls die beiden Geraden parallel sind. |
XPoint |
plumb(XPoint point)
Fällt das Lot vom Eingabepunkt auf die Gerade und gibt den Schnittpunkt zurück. |
XPoint |
plumbTo(XPoint p,
XBaseline l)
Bestimmt die Gerade senkrecht zu dieser durch den Punkt p und gibt deren Schnittpunkt mit dem Linienobjekt l zurück. |
void |
rotate(XPoint center,
double angle)
Dreht das Objekt um den Punkt center mit dem Winkel angle. |
void |
rotate(XPoint center,
XPoint start,
XPoint end)
Dreht das Objekt um den Punkt center mit dem Winkel start-center-end. |
void |
rotateTo(double x,
double y)
Dreht die XBaseline um den Startpunkt so, daß sie durch den Punkt (x,y) geht. |
void |
scale(XPoint center,
double xscale,
double yscale)
Skaliert das Objekt mit xscale und yscale so, daß der Punkt middle davon unberührt bleibt. |
void |
set(double x1,
double y1,
double x2,
double y2)
Konstruiert eine Gerade durch die Punkte (x1,y1) und (x2,y2). |
void |
set(XPoint s,
XPoint t)
Konstruiert eine Gerade durch die Punkte s und t. |
boolean |
similarDirection(XBaseline l)
Liefert true, wenn l und dieses XBasline-Objekt ungefähr in dieselbe Richtung zeigen, also die Geraden höchstens einen Winkel von 90° aufspannen (gerichtet!). |
double |
slope()
Liefert die Steigung des Geraden. |
XPoint |
source()
Liefert eine Referenz auf den Source-Punkt zurück. |
boolean |
supportsIntersection(java.lang.Object O)
Liefert true, falls diese Klasse den Schnitt mit dem übergebenen Objekt unterstützt. |
XPoint |
target()
Liefert eine Referenz auf den Target-Punkt zurück. |
java.lang.String |
toString()
Überschreibt Object.toString(). |
XObject |
transform_XObject(double m00,
double m01,
double m02,
double m10,
double m11,
double m12)
Transforms this XObject by the given affine
transformation matrix. |
void |
transform(double m00,
double m01,
double m02,
double m10,
double m11,
double m12)
Transformiert das Objekt mit der übergebenen Transformationsmatrix. |
void |
translate(double dx,
double dy)
Verschiebt das Objekt um den Vektor (dx,dy). |
XPoint |
vector(boolean forward,
boolean orthogonal,
boolean normalize)
Liefert einen (normalisierten) Vektor auf oder orthogonal zum Linienobjekt. |
boolean |
vertical()
Liefert true, falls die Gerade vertikal ist. |
double |
y_abs()
Liefert die Y-Koordinate des Schnittpunktes der Geraden mit der Y-Achse. |
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 |
Field Detail |
public static final byte DIRECTION_RIGHT
public static final byte DIRECTION_LEFT
public static final byte DIRECTION_UP
public static final byte DIRECTION_DOWN
public static final double INFINITE_BOUND
Constructor Detail |
public XBaseline()
Method Detail |
public java.lang.String toString()
toString
in class XObject
Object.toString()
public boolean equals(java.lang.Object O)
equals
in class java.lang.Object
O
- Objekt, mit dem verglichen werden sollObject.equals(java.lang.Object)
public XPoint source()
public XPoint target()
public double y_abs()
public double slope()
public byte direction()
public static final byte oppositeDirection(byte direction)
direction
- Richtungpublic void set(double x1, double y1, double x2, double y2)
x1,y1
- erster Punkt, durch den die Gerade gelegt wirdx2,y2
- zweiter Punkt, durch den die Gerade gelegt wirdpublic void set(XPoint s, XPoint t)
s
- erster Punkt, durch den die Gerade gelegt wirdt
- zweiter Punkt, durch den die Gerade gelegt wirdpublic void rotateTo(double x, double y)
x,y
- neuer Punkt, durch den die Baseline gehen sollpublic void flip()
public double angle()
public double angle(XBaseline l)
l
- Basline-Objekt, mit dem der Winkel berechnet wirdpublic final XPoint getPointInLineDirection(XPoint start, double length)
start
- Startpunktlength
- Entfernungpublic XPoint calculatePoint(double x)
x
- X-Koordinatepublic boolean vertical()
public boolean horizontal()
public boolean parallel(XBaseline l)
l
- zu vergleichende Geradepublic byte orientation(XPoint p)
p
- TestpunktXPoint.ORIENTATION_LEFT
,
XPoint.ORIENTATION_RIGHT
,
XPoint.ORIENTATION_COLLINEAR
public boolean liesOn(XPoint q)
p
- zu testender Punktpublic XLine orthogonal(XPoint point)
point
- public XLine orthogonal()
public XPoint plumb(XPoint point)
point
- Punkt von dem aus Lot gefällt werden sollpublic XPoint plumbTo(XPoint p, XBaseline l)
p
- Punkt, durch den Lot definiert wirdl
- Gerade, mir der geschnitten werden sollpublic XPoint closestPoint(XPoint point)
point
- Punktpublic boolean incident(XBaseline b)
b
- XBaseline-Objekt, mit dem Berührung getestet wird.public XPoint getDirectionVector()
public boolean similarDirection(XBaseline l)
l
- XBaseline, mit der verglichen werden sollpublic XPoint vector(boolean forward, boolean orthogonal, boolean normalize)
forward
- falls true: Vektor ist in Richtung des Linienobjektes orientiert
bzw. nach links, falls orthogonal. falls false: Vektor ist entgegen der Richtung
des Linienobjektes bzw. rechts (falls orthogonal) orientiertorthogonal
- falls true, wird ein orthogonaler, ansonsten ein Vektor auf dem
Linienobjekt, zurückgegebennormalize
- falls true, wird der Vektor normalisiert, ansonsten hat er die
Länge des Linienobjektespublic static final int getInfiniteBoundIndex(XPoint p)
p
- Punktpublic static final XPoint getInfinitePoint(int i)
i
- Index: 0 links unten, 1 rechts unten, 2 rechts oben, 3 links obenpublic static final void copyInfiniteChain(XPoint p1, XPoint p2, XPoint[] array, int start)
p1,p2
- Punkte auf der Boundingboxarray
- Feld, indem Kettenpunkte gespeichert werden sollenstart
- Index, ab dem im Array gespeichert werden solltepublic static final XPolygon getInfiniteBounds()
public XPoint getInfiniteEndPoint(boolean forward)
forward
- Richtungpublic XSegment getInfiniteSegment()
public boolean supportsIntersection(java.lang.Object O)
supportsIntersection
in interface Intersectable
O
- zu schneidendes Objektpublic Intersection intersection(java.lang.Object O)
intersection
in interface Intersectable
O
- zu schneidendes ObjektIntersectionException
- falls der Schnitt nicht
durchgeführt werden konnte.public boolean contains(double x, double y)
contains
in interface Intersectable
x,y
- Koordinaten des Punktespublic void transform(double m00, double m01, double m02, double m10, double m11, double m12)
transform
in interface AffineXTransformable
m00,m01,m02
- erste Zeile der Transformationsmatrixm10,m11,m12
- zweite Zeile der Transformationsmatrixpublic void scale(XPoint center, double xscale, double yscale)
scale
in interface AffineXTransformable
middle
- Mittelpunkt, der nicht verschoben werden sollxscale
- Skalierung der X-Achseyscale
- Skalierung der Y-Achsepublic void rotate(XPoint center, double angle)
rotate
in interface AffineXTransformable
center
- Drehpunktangle
- Drehwinkelpublic void rotate(XPoint center, XPoint start, XPoint end)
rotate
in interface AffineXTransformable
center
- Drehpunktstart
- Startpunktend
- Endpunktpublic void translate(double dx, double dy)
translate
in interface AffineXTransformable
(dx,dy)
- Verschiebungsvektorpublic XObject transform_XObject(double m00, double m01, double m02, double m10, double m11, double m12)
this
XObject by the given affine
transformation matrix.transform_XObject
in class XObject
m00,m01,m02
- first row of the transformation matrixm10,m11,m12
- second row of the transformation matrixthis
, only if it is
mutable, otherwise a new XObject represeting the transformed object).
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |