Kollisionsabfrage wenn ich Objekte vorher rotieren lasse...
-
Eine EBENE ist unendlich groß und hat keine ECKEN! Dort trifft es immer zu, daß der kürzeste Abstand zu einem Punkt genau senkrecht zur Ebene verläuft. Ein RECHTECK ist aber nur eine TEILMENGE einer EBENE. Entsprechend wird die Abfrage komplizierter...
-
Jippi und wie überprüft man ob der Punkt innerhalb der Teilmenge der Ebene liegt? Hab google nichts richtiges gefunden
-
Aber um mit der Box zu testen benötigst du eben keinen Schnitt mit Rechtecken, das ist grad der Witz. Also ist es im Grunde ganz einfach, schau dir einfach mal Abstand Punkt - Ebene an!
Bye, TGGC
-
Aber du meintest ja ich solle die Box in 6 Planes zerlegen. Ich finde ja auch nur Infos über Abstand Punkt-Ebene aber nicht Punkt-Box z.b.
Ist es denn möglich direkt Punkt-Box zu machen ohne die 6 Planes? Wie funktioniert es denn ohne die Zerlegung? Danke für eure Mathenachhilfe
Edit: Könnt ihr mir mal erklären wie man auf so eine EBenengleichung kommt und was die aussagt? Bei lauter so Aufgaben im Netz steht oft
"Gegeben sei die Ebene E : -2x1 + x2 - 3x3 - 5 = 0Das einzige was für mich logische wäre eine Ebene zu definieren, wenn sie denn unendlich ist, wäre ihr Vektor und ihre Position im Raum! Ich versteh diese Ebenengleichung gar nicht
Edit2: Ich habe jetzt mehrfach für die Berechnung des Abstandes folgendes Gleichungssystem gefunden
d(P;E) = Betrag((aP1 + bP2 + cP3 + d)/sqrt(a²+b²+c²))
Leider weiß ich jetzt nicht so wirklich was ich für die Variablen einzusetzen habe. Ich glaube ich habe gelesen dass a b und c die Koordinaten (also x y und z) des Normalvektors der Ebene sind, damit hätte ich a b und c. Sind dann P1 P2 P3 vielleicht die Koordinaten des Punktes? Also das ist das einzige was ich mir vorstellen könnte...wäre lieb wenn ihr mir sagen könntet ob das stimmt....mhhh so hätte ich dann zwar den Abstand, aber ich weiß dann doch nicht ob er in Der Ebene liegt? Wenn ich vom Punkt ausgehenden in Richtung des Normalvektors der Ebene den Abstand d gehe müsste ich zum Schnittpunkt ( = Lotfußpunkt) kommen oder? Wie kann ich dann überprüfen ob dieser in der gesuchten Quaderseite liegt? Ich hoffe ich habe jetzt nicht totalen Unfug erzählt
Kevin
-
Anhang an obigen Post:
Durch ThomasRikers geniale Seite (*schleim*) habe ich jetzt "rausgefunden" dass d eben angibt wie viele Einheiten in Richtung des Normalenvektors zu gehen ist. Aber angenommen ich habe jetzt eine Ebene, ich habe die 4 Eckpunkte gegeben (jaaaa eine Ebene hat keine Eckpunkte weil sie unendlich ist, aber ich geh jetzt von meiner Quaderseite aus). Dann nehm ich einen Eckpunkt und nehm die Vektoren der 2 Kanten am Eckpunkt. Über ihr Kreuzprodukt komme ich an den Normalenvektor. Dann habe ich a b und c. Nun fehlt mir aber noch d! Wie komme ich darauf wie viele Einheiten in Höhe des Normalenvektors zu verschieben sind? Ich habe ja alles bis auf das d :(((
Wisst ihr zusätzlich noch wie ich dann schaue ob der Schnittpunkt (wie komm ich dann auf den? so wie ichs oben gesagt habe?) in meiner Quaderseite liegt?Danke
Kevin
-
Eine Ebene im Raum ist definert durch einen Punkt (gegeben als Positionsvektor) und zwei nicht (anti-)parallelen Richtungsvektoren.
Für's Box-Prüfing mußt Du den Punkt gegen alle Planes checken. Liegt er jedesmal auf der Innenseite der Planes, ist er innerhalb der Box.
-
welchen punkt muss ich gegen alle planes testen? Den mittelpunkt doch nicht weil der auch ne Box schneiden kann bevor der MPKT in der Box selbst ist...
Wie kann ich denn überprüfen ob ein Schnittpunkt auf einer unendlichen Ebene in einer begrenzten ist??
-
Ich glaub ich umgebe mein Model wieder mit Boxen...da ist die Überlappungsüberprüfung doch 7000 mal leichter! Kugel - Box ist blöd für 10 klässler
-
Surkevin schrieb:
Den mittelpunkt doch nicht weil der auch ne Box schneiden kann bevor der MPKT in der Box selbst ist...
Die Kugel kann nur dann in der Box sein, wenn der Abstand des Mittelpunktes kleiner als der Radius ist. Hatte ich aber schon gesagt!
Surkevin schrieb:
Wie kann ich denn überprüfen ob ein Schnittpunkt auf einer unendlichen Ebene in einer begrenzten ist??
Das musst du doch garnicht. Liest du eigentlich was ich schreibe?
Und poste die 7k mal einfache Lösung für gedrehte Boxen, die würde bestimmt alle interessieren.
Bye, TGGC
-
TGGC schrieb:
Aber um mit der Box zu testen benötigst du eben keinen Schnitt mit Rechtecken, das ist grad der Witz. Also ist es im Grunde ganz einfach, schau dir einfach mal Abstand Punkt - Ebene an!
Bye, TGGC
Ich versteh aber nicht wieso man keinen Schnitt mit Rechtecken braucht
-
Für den Schnitt mit einem Rechteck braucht man ja auch keinen Schnitt mit Strecken.
Und wo ist die einfache Lösung?
Bye, TGGC
-
sorry aber ich versteh in meinem gegenwärtigen zustand absolut nicht was du mir sagen willst...das meinst du nicht oder:
Einfach zu allen 6 Ebenen die Länge der Schnittgerade herausfinden und wenn alle 6 negativ oder kleiner als Radius sind = Kollision?
-
Nein, das meine ich.
Wir warten auf die einfache Lösung.
Bye, TGGC
-
Ja das mit den Boxen is genau so schwer wie mit der Kugel...da bleib ich bei meiner Kugel...hab jetzt zig Funktionen zur Berechnung nur leider sind die nicht 100%ig exakt *flenn*
Was meintest du denn? Darfst es mir sagen!
-
vielleicht hilft das:
BSP Collision Detection As Used In MDK2 and NeverWinter Nightsrapso->greets();
-
habs jetz geschafft .... nur die Formel Abstand Punkt-Ebene ausm Internet war leicht verkehrt
-
Na ich erspar mir den Kommentar besser.
-
die war echt verkehrt!! da war ein + wo ein - hingehörte...
aber lass es raus - mach mich fertig :xmas1: