|
Autor |
Kuben |
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Themenstart: 2002-11-01
|
Hallo da!
Nachdem ich meine Matheklausur glücklich hinter mich gebracht habe (Danke an alle die ihr Wissen großzügig mit mir geteilt haben!), beschäftige ich mich mit 3D-Darstellungen/Bewegungen.
Dazu eine kurze Frage (es geht darum die Berechnung möglichst schnell zu gestalten...):
Was ist der mathematisch simpelste (möglichst nur Addition/Multiplikation/Vergleiche) Weg um festzustellen ob sich zwei 'Boxen' schneiden? Jede Box besteht aus 8 Punkten (ihren Ecken). Eine Box ist im Raum an den Achsen des Weltkoordiantensystems ausgerichtet, (muß aber nicht im Ursprung liegen), die zweite Box liegt beliebig im Raum.
Jemand eine Idee?
Sven
|
Profil
|
Eckard
Senior  Dabei seit: 14.10.2002 Mitteilungen: 6828
Wohnort: Magdeburg
 | Beitrag No.1, eingetragen 2002-11-01
|
Hallo Sven,
nur eine erste Idee: Berechne die Minima/Maxima der Boxenränder in x,y,z-Richtung für beide Boxen. Jetzt sukzessive nach dem Ausschlussprinzip. Wenn xmax1 < xmin2, überlappen sich die Boxen garantiert nicht. Dann ymax1 < ymin2 testen usw. Das Ganze läßt sich auch prima programmieren.
Nach diesen drei Vergleichen muss man noch einmal genauer überlegen, wie es weitergeht.
Gruss Eckard
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.2, vom Themenstarter, eingetragen 2002-11-02
|
Hallo Eckard,
das ist schonmal ein guter Hinweis! Dieser ist auch schon in meine Kollisionsmethode eingebaut, allerdings als 'Positive Abfrage', d.h. ich prüfe ob ein Eckpunkt innerhalb der feststehenden Box liegt. Dein Hinweis ist nur unwesentlich mehr Aufwand und liefert eine 'negative Abfrage', d.h. die Boxen kollidieren garantiert nicht! Kann ich sehr gut brauchen (muß man erst mal drauf kommen *grmblfx*) Danke!
Über weitergehende Ideen wie man die 'übrigen' Kollisionsfälle auschliessen kann würde ich mich sehr freuen!
Sven
|
Profil
|
matroid
Senior  Dabei seit: 12.03.2001 Mitteilungen: 14533
Wohnort: Solingen
 | Beitrag No.3, eingetragen 2002-11-02
|
Hi Sven,
Ein Quader im IR³ kann dargestellt werden als Kreuzprodukt von Intervallen.
Q1: [a,b]x[c,d]x[e,f]
Wenn ein zweiter Quader:
Q2: [r,s]x[t,u]x[v,w]
mit Q1 einen nicht leeren Durchschnitt hat, dann muß der komponentenweise und paarweise Durchschnitt der Intervalle nicht leer sein,
also:
[a,b] Ç [r,s] ¹ Ø
[c,d] Ç [t,u] ¹ Ø
[e,f] Ç [v,w] ¹ Ø
und der Durchschnitt zweier Intervalle ist genau dann nicht leer, wenn vom kürzeren der beiden Intervalle mindestens ein Randwert im anderen Intervall liegt.
Gruß
Matroid
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.4, vom Themenstarter, eingetragen 2002-11-02
|
Ich nehme mal an dass die Intervalle beider Quader entlang der Koordinatenachsen gerechnet werden, das heisst dann aber dass der Quader Nr. 2 NICHT irgendwie gedreht im Raum liegen kann oder?
(Bei genauem Hinsehen scheint mir dass hier die formale, ausführliche Beschreibung von Eckard's Vorschlag vorliegt, trotzdem Danke, da ich heute leider keine Zeit hatte irgendwas an dem Prog. zu machen ist mir der Implementierungsweg jetzt deutlich aufgezeigt!)
Sven
|
Profil
|
matroid
Senior  Dabei seit: 12.03.2001 Mitteilungen: 14533
Wohnort: Solingen
 | Beitrag No.5, eingetragen 2002-11-02
|
Hast Du denn einen Test, mit dem Du prüfen kannst, ob ein gegebener Punkt in einem gegebenen Würfel liegt?
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.6, vom Themenstarter, eingetragen 2002-11-03
|
Wenn der Würfel entlang der Weltkoordinaten ausgerichtet ist: ja :-)
Mein Problem besteht auch eigentlich nur noch aus dem Fall, in dem sich 2 Würfel schneiden OHNE dass ein Punkt des einen Würfels innerhalb des anderen liegt (oder umgekehrt)
|
Profil
|
matroid
Senior  Dabei seit: 12.03.2001 Mitteilungen: 14533
Wohnort: Solingen
 | Beitrag No.7, eingetragen 2002-11-03
|
Was Du da sagst, ist aber unmöglich.
Wenn 2 Würfel sich schneiden liegt immer eine Ecke eines Würfels in dem anderen.
Gruß
Matroid
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.8, vom Themenstarter, eingetragen 2002-11-03
|
Leider gilt das nur wenn BEIDE Würfel am selben Koordinatensystem entlang der Achsen ausgerichtet sind. Stell dir 2 Würfel nebeneinander vor, dreh einen um die Y-Achse um 45° und dann nochmal um die Z-Achse um 45°. Noch ein bisschen nach unten verschieben und du bekommst 2 Würfel die sich schneiden und dennoch keine ineindanderliegenden Punkte haben. Denselben Effekt erzielt man auch einfacher, wenn beide Boxen unterschiedlich groß sind. ( Eine schmale, lange und eine kurze, dicke...)
(OK, ich benutze Begriffe wie Würfel, Box, Quader etc.. ziemlich ausserhalb von allgemein gültigen Konventionen (gleiche Seiten, etc...), am anschaulichsten finde ich KLOTZ ;-) )
|
Profil
|
matroid
Senior  Dabei seit: 12.03.2001 Mitteilungen: 14533
Wohnort: Solingen
 | Beitrag No.9, eingetragen 2002-11-03
|
Ja, Du hast recht. Es gibt ja diese Situation (im IR²):
Ich hatte zu sehr an Würfel gedacht.
Gruß
Matroid
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.10, vom Themenstarter, eingetragen 2002-11-03
|
Ich hätte mir ja die Mühe gemacht meinen Binären Baum auf gleichseitige Würfel umzustricken, wenns nur dass wäre. Leider gibt es auch noch diesen Fall:
( Ähemm, falls man das Bild nicht sieht:
http://www.kuentroopers-reality.de/sven/2wuerfel.JPG
)
Sven
Edit: Warum kann ich dein Bild sehen und meins nicht? (Ok, meins ist hässlich aber woher weiß das Internet dass?)
[ Nachricht wurde editiert von Sven am 2002-11-03 23:38 ]
[ Nachricht wurde editiert von matroid am 2002-11-04 00:47 ]
|
Profil
|
Sven
Ehemals Aktiv  Dabei seit: 15.08.2002 Mitteilungen: 37
 | Beitrag No.11, vom Themenstarter, eingetragen 2002-11-04
|
Ahh, Herrlich!
Vielen Dank.
Sven
|
Profil
|
matroid
Senior  Dabei seit: 12.03.2001 Mitteilungen: 14533
Wohnort: Solingen
 | Beitrag No.12, eingetragen 2002-11-04
|
Hi Sven,
ich finde die Frage sehr interessant, darum habe ich sie auf die Startseite gesetzt.
Siehe hier.
Damit es nicht an zwei Stellen Beiträge zu dem Thema gibt, schließe ich dieses hier ab.
Gruß
Matroid
|
Profil
|
Das Thema wurde von einem Senior oder Moderator abgehakt. | Sven wird per Mail über neue Antworten informiert. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|