public final class BoundingRechteck
extends java.lang.Object
implements java.io.Serializable
Modifier and Type | Field and Description |
---|---|
float |
breite
Reelle Breite des Rechtecks
|
float |
hoehe
Reelle Höhe des Rechtecks
|
float |
x
Reelle
x -Position des Rechtecks |
float |
y
Reelle
y -Position des Rechtecks |
Constructor and Description |
---|
BoundingRechteck(float x,
float y,
float dX,
float dY)
Konstruktor für Objekte der Klasse
BoundingRechteck mit reellen Werten. |
Modifier and Type | Method and Description |
---|---|
BoundingRechteck |
anPosition(float realX,
float realY)
Gibt ein neues BoundingRechteck mit selber Höhe und Breite, jedoch einer bestimmten, zu
definierenden Position.
Diese Position ist die der linken oberen Ecke des BoundingRechtecks. |
Rechteck |
ausDiesem()
Berechnet aus diesem rein aus Zahlen bestehenden Rahmen ein Rechteck, das in der Zeichenebene
darstellbar ist.
|
float |
getRealBreite()
Gibt die reelle Breite aus.
|
float |
getRealHoehe()
Gibt die reelle Hoehe aus.
|
float |
getRealX()
Gibt die reelle X-Koordinate der oberen linken Ecke aus.
|
float |
getRealY()
Gibt die reelle Y-Koordinate der oberen linken Ecke aus.
|
float |
hoehenUnterschied(BoundingRechteck r)
Berechnet den Höhenunterschied zwischen dem Fuß des höheren und dem Kopf des tieferen
BoundingRechtecks.
|
BoundingRechteck |
in(BoundingRechteck aussen)
Sollte dieses Bounding-Rechteck nicht voll innerhalb eines bestimmten anderen, äußeren
Rechtecks liegen, so wird versucht, dieses Bounding-Rechteck in das andere mit möglichst
wenig Verschiebung zu bringen.
|
boolean |
istIn(Punkt p)
Testet, ob ein Punkt sich in dem BoundingRechteck befindet.
|
BoundingRechteck |
klon()
Erstellt einen Klon von diesem BoundingRechteck.
|
boolean |
linksVon(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck links von einem zweiten ist
|
BoundingRechteck |
linksVon(int grenzeRechts)
Berechnet, ob dieses Rechteck links von einer bestimmten Grenze liegt, und wenn nicht,
dann berechnet es eines, das gerade so an der rechten Extremgrenze liegt.
|
BoundingRechteck |
mittenAngleichInstanz(BoundingRechteck r)
Ein Mittenangleich mit einem anderen BoundingRechteck
|
BoundingRechteck |
mittenAngleichInstanz(Punkt p)
Gibt ein neues BoundingRechteck zurück, das seinen Punkt genau im angegebenen Zentrum hat.
|
Punkt |
position()
Gibt die exakte Position der linken oberen Ecke dieses Bounding-Rechtecks
aus.
|
Punkt[] |
punkte()
Berechnet die vier Eckpunkte des umfassenden
BoundingRechteck s |
BoundingRechteck |
rechtsVon(int grenzeLinks)
Berechnet, ob dieses Rechteck rechts von einer bestimmten Grenze liegt, und wenn
nicht, dann berechnet es eines, das gerade so an der linken Extremgrenze liegt.
|
boolean |
schneidet(Dreieck d)
Testet, ob sich ein Dreieck in dem BoundingRechteck befindet.
Hierbei wird zuerst getestet, ob ein Punkt des Dreiecks im Rechteck ist, dann, falls nötig ob ein Punkt des Rechtecks im Dreieck ist. |
boolean |
schneidetBasic(BoundingRechteck fig)
Testet, ob ein anderes BoundingRechteck dieses schneidet.
Schneiden bedeutet folgendes im Sinne der Engine Alpha: Beide Rechtecke teilen sich mindestens einen (aber meistens mehrere) Punkte auf der Zeichenebene. |
boolean |
stehtAuf(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck auf einem zweiten "steht".
|
BoundingRechteck |
summe(BoundingRechteck r)
Berechnet aus diesem und einem weiteren BoundingRechteck ein neues, dass die beiden genau
fasst.
|
java.lang.String |
toString()
Gibt eine String-Repräsentation dieses Objektes aus.
|
boolean |
ueber(BoundingRechteck r)
Berechnet, ob dieses BoundingRechteck ueber einem zweiten ist
|
BoundingRechteck |
ueber(int untergrenze)
Berechnet, ob dieses Rechteck über einer Grenze liegt und wenn nicht, dann berechnet
es eines, das gerade so an der Untergrenze liegt.
|
KreisCollider |
umschliessenderKreis()
Gibt einen
BoundingKreis aus, der das Rechteck minimal, aber voll umschließt. |
boolean |
umschliesst(BoundingRechteck innen)
Diese Methoden prüft, ob dieses Bounding-Rechteck ein zweites vollkommen umschliesst.
Gemeinsame Ränder zählen AUCH als umschliessen! |
BoundingRechteck |
unter(int obergrenze)
Berechnet, ob dieses Rechteck unter einer Grenze liegt, und wenn nicht, dann berechnet
es eines, das gerade so an der Obergrenze liegt.
|
BoundingRechteck |
verschErhoeht(Vektor v,
int dHoehe)
Transformiert dieses Boudning-Rechteck auf 2 Weisen: Einmal in der Postion und zusätzlich in
seiner Höhe.
|
float |
verschiebenX(BoundingRechteck r)
Berechnet, wie weit man waagrecht ein BoundingRechteck verschieben müsste, damit es dieses
nicht mehr berührt.
|
float |
verschiebenY(BoundingRechteck r)
Berechnet, wie weit man senkrecht ein BoundingRechteck verschieben müsste, damit es dieses
nicht mehr berührt.
|
BoundingRechteck |
verschobeneInstanz(Vektor v)
Berechnet ein neues BoundingRechteck mit denselben Maßen wie dieses, jedoch um einen
bestimmten Vektor verschoben.
|
Punkt |
zentrum()
Berechnet den Mittelpunkt dieses BoundingRechtecks in der Zeichenebene.
|
public final float x
x
-Position des Rechteckspublic final float y
y
-Position des Rechteckspublic final float breite
public final float hoehe
public BoundingRechteck(float x, float y, float dX, float dY)
BoundingRechteck
mit reellen Werten.x
- Die x
-Koordinate der oberen linken Ecke des Rechtecksy
- Die y
-Koordinate der oberen linken Ecke des RechtecksdX
- Die Breite des Bounding-RechtecksdY
- Die Höhe des Bounding-Rechteckspublic Rechteck ausDiesem()
public BoundingRechteck mittenAngleichInstanz(BoundingRechteck r)
r
- Das BoundingRechteck, an dessen Mitte auch die dieses Rechtecks sein soll.public BoundingRechteck mittenAngleichInstanz(Punkt p)
p
- Das Zentrum des zurückzugebenden BoundingRechtecks.public Punkt zentrum()
public BoundingRechteck verschobeneInstanz(Vektor v)
v
- Der Vektor, der die Verschiebung des neuen Objektes von diesem beschreibt.BoundingRechteck
-Objekt, das die selbe Maße wie dieses hat,
jedoch um die entsprechende Verschiebung verschoben ist.public BoundingRechteck summe(BoundingRechteck r)
r
- Das zweite Rechteck fuer die Berechnungpublic BoundingRechteck ueber(int untergrenze)
untergrenze
- Die Grenze, auf der das Ergebnis maximal liegen darf.this
.public BoundingRechteck unter(int obergrenze)
obergrenze
- Die Grenze, auf der das Ergebnis maximal liegen darf.this
.public BoundingRechteck rechtsVon(int grenzeLinks)
grenzeLinks
- Der Wert, den das Ergebnisrechteck maximal links sein darfthis
zurückgegeben.public BoundingRechteck linksVon(int grenzeRechts)
grenzeRechts
- Der Wert, den das Ergebnisrechteck maximal rechts sein darfthis
zurückgegeben.public BoundingRechteck anPosition(float realX, float realY)
realX
- Die X-Koordinate der linken oberen Ecke des BoundingRechtecksrealY
- Die Y-Koordinate der linken oberen Ecke des BoundingRechteckspublic KreisCollider umschliessenderKreis()
BoundingKreis
aus, der das Rechteck minimal, aber voll umschließt.BoundingKreis
aus, der das Rechteck minimal, aber voll umschließt.
Die Ecken des Rechtecks liegen alle auf dem Kreis.public boolean schneidet(Dreieck d)
public boolean istIn(Punkt p)
p
- Der Punkt, der getestet werden sollpublic Punkt[] punkte()
BoundingRechteck
sBoundingRechteck
spublic boolean umschliesst(BoundingRechteck innen)
innen
- Das Innere Bounding-Rechteck. Es soll geprüft werden, ob dieses Vollkommen von dem die
Methode ausführenden Rechteck umschlossen wird.true
, wenn das ausfuehrende Bounding-Rechteck das als Argument
übergebene BoundingRechteck voll umschliesst, sonst false
.public boolean stehtAuf(BoundingRechteck r)
r
- Das BoundingRechteck, auf dem dieses stehen koenntetrue
, wenn dies so ist, sonst false
.public float verschiebenX(BoundingRechteck r)
r
- Das BoundingRechteck, das eventuell verschoben werden müsste.public boolean schneidetBasic(BoundingRechteck fig)
fig
- Das zweite zu testende BoundingRechtecktrue
, wenn sich die beiden schneiden, sonst false
.public boolean linksVon(BoundingRechteck r)
r
- Das Rechteck, bei dem dies getestet werden solltrue
, wenn dieses Rechteck rechts von dem anderen ist, sonst
false
.public float verschiebenY(BoundingRechteck r)
r
- Das BoundingRechteck, das eventuell verschoben werden müsste.public boolean ueber(BoundingRechteck r)
r
- Das Rechteck, bei dem dies getestet werden solltrue
, wenn dieses Rechteck rechts von dem anderen ist, sonst
false
.public float hoehenUnterschied(BoundingRechteck r)
r
- Das BoundingRechteck, dessen Höhenunterschied zu diesem gefunden werden sollpublic BoundingRechteck verschErhoeht(Vektor v, int dHoehe)
v
- Der Vektor, der die Verschiebung beschreibt.dHoehe
- Die Höhenänderung.public BoundingRechteck in(BoundingRechteck aussen)
aussen
- Das äußere Rechteck, innerhalb dessen sich das Ergebnis-Rechteck befinden wird (sollte das
äußere ausreichend groß sein).public BoundingRechteck klon()
public java.lang.String toString()
toString
in class java.lang.Object
x
, y
, dX
und dY
gemacht)public float getRealX()
getRealY()
,
getRealBreite()
,
getRealHoehe()
public float getRealY()
getRealX()
,
getRealBreite()
,
getRealHoehe()
public float getRealBreite()
getRealX()
,
getRealY()
,
getRealHoehe()
public float getRealHoehe()
getRealX()
,
getRealY()
,
getRealBreite()
public Punkt position()