geometrisches problem...

Posted By: Perro

geometrisches problem... - 11/14/07 16:51

hallo zusammen

ich habe zwei 3-vektoren, welche einen quader beschreiben. (die vektoren bilden die diagonale des quaders).

wie kann ich jetzt möglichst schnell und einfach testen, ob eine beliebige gerade in parameterform (point + direction * t) den quader schneidet?

bin dankbar für alle vorschläge!

mfg perro
Posted By: Puppeteer

Re: geometrisches problem... - 11/14/07 17:45

öhhmmm du könntest zu jedem punkt (vom quader!!! heißt isngesamt 8) auch eine geragen funktion machen mit der selben direction nur halt dem punkt koordinaten dann setzt du meinetwegen für x 1 ein und dann prüfst du ob der punkt in der mitte von mind 4 ist d.h.

a-b
-h-
c-d

vec_dist(punkta,hauptpunt)<vec_dist(punkta,punktc)&&
vec_dist(punktc,hauptpunt)<vec_dist(punkta,punktc)&&
vec_dist(punktb,hauptpunt)<vec_dist(punktb,punktc)&&
vec_dist(punktd,hauptpunt)<vec_dist(punktd,punktc)

und das für jede seite des rechtecks, wenn eins stimmt schneidet die gerade den quader
Posted By: Marco_Grubert

Re: geometrisches problem... - 11/14/07 18:49

Ich bezweifle, dass Du mit 2 Vektoren eindeutig einen Quader beschreiben kannst, es sei denn Du machst bestimmte Annahmen ueber die Ausrichtung des Quaders.

Wenn Du die 6 Ebenengleichungen hast, kannst Du diese mit der Geraden gleichsetzen und nach t aufloesen. Wenn Du das fuer jeweils gegenueberliegende Seiten machst (also z.B. die Flaeche die in +X und jene die in -X Richtung liege) dann fuehrt das zu 2 Loesungen: eine fuer Eintritts- und eine fuer Austrittspunkt der Geraden. Fuer die 3 Ebenenpaare (+X/-X, +Y/-Y, und +Z/-Z) hast Du nun also 3 Intervalle. Die Schnittmenge der Intervalle gibt Dir den tatsaechlichen Eintritts- und Austrittspunkt. Falls die Intervalle nicht ueberlappen gibt es keine Beruehrung der Geraden und des Quaders. Falls die Gerade parallel zu einer der Ebenen ist musst Du zusaetzliche Bedingungen ueberpruefen, z.B. liegt der Ortsvektor der Geraden innerhalb des Quaders.
Posted By: mk_1

Re: geometrisches problem... - 11/14/07 18:59

Man kann auch mit zwei Positionen ein rect beschreiben, so wird er das wohl für R³ gemeint haben.

Generell kannst du dir sechs Ebenen erzeugen und den Schnittpunkt der Geraden mit der Ebene finden. Liegen die jeweiligen Komponenten des Schnittvektors im Min/Max-Bereich des Quads, hast du getroffen. Es gibt auch weitere Möglichkeiten, bestimmte Flächen schon vorher auszuschließen, aber das bekommst du bestimmt hin.

Ansonsten: google. Kollision wurde schon zuhauf im Netz besprochen.
Posted By: Perro

Re: geometrisches problem... - 11/14/07 19:55

danke für die antworten, genau das hab ich gesucht. ich brauche die formel übrigens, um einen search-tree für einen raytracer zu erzeugen...
Posted By: Marco_Grubert

Re: geometrisches problem... - 11/14/07 22:37

Empfehlung :
http://www.amazon.com/Mathematics-Progra...9845&sr=8-1
Posted By: Joozey

Re: geometrisches problem... - 11/14/07 23:35

Thanx for that link
© 2024 lite-C Forums