# Schnittmenge BoundingBox / intersect()



## toshi122 (12. Mrz 2006)

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!


----------



## Illuvatar (12. Mrz 2006)

Soweit ich weiß, gibt es so eine Methode nicht, das wist du wohl selber schreiben müssen.


----------



## Guest (12. Mrz 2006)

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.
> 
> ...



Soweit ich das verstanden habe, funktioniert das wie folgt:


```
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?


----------



## toshi122 (13. Mrz 2006)

> 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:


----------

