Schnittmenge BoundingBox / intersect()

Status
Nicht offen für weitere Antworten.
T

toshi122

Gast
Hi all!

Ich prüfe mit der Methode intersect(Bounds boundsObject) aus javax.media.j3d.Bounds, ob sich zwei BoundingBox(en) überschneiden! Rückgabe ist ein boolean! Jetzt würde ich gerne die Schnittmenge ebenfalls als BoundingBox haben bzw. irgendwie an die Koordinaten des resultierenden Quaders kommen. Die Methode: Bounds | closestIntersection(Bounds[] boundsObjects) ist die einzige, die eine BB zurückgibt, jedoch nicht die Schnittmenge!

Hat jemand ne Idee, ob sowas in J3D schon existiert oder ne andere Lösung parat?

Danke im Voraus!
 
G

Guest

Gast
Was ist denn mit folgender Methode? Sollte eigentlich genau das machen, was Du möchtest.

intersect
public boolean intersect(Bounds boundsObject, BoundingBox newBoundBox)
Test for intersection with another bounding box.

Parameters:
boundsObject - another bounding object
newBoundBox - the new bounding box which is the intersection of the boundsObject and this BoundingBox
Returns:
true or false indicating if an intersection occured

Soweit ich das verstanden habe, funktioniert das wie folgt:

Code:
    BoundingBox b1 = new BoundingBox( new Point3d(0,0,0), new Point3d(2,2,2) );
    BoundingBox b2 = new BoundingBox( new Point3d(1,1,1), new Point3d(3,3,3) );
    BoundingBox erg = new BoundingBox();
    boolean b =  b1.intersect(b2, erg);
    if( b )
        System.out.println( "Die Schnittmenge lautet "+erg );
    else
        System.out.println( "Keine Schnittmenge!" );

Das liefert natürlich nur BoundingBoxes entlang der drei Achsen, eine echte Schnittmenge läßt sich damit natürlich nicht ermitteln. Reicht Dir das?
 
T

toshi122

Gast
public boolean intersect(Bounds boundsObject, BoundingBox newBoundBox)

Ja! Genau das wars... ich wußte doch ich hab das irgendwo schonmal gesehen! :roll:

Problem gelöst.... Danke! :applaus:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben