Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kollision von Ellipsoiden (https://www.delphipraxis.net/101723-kollision-von-ellipsoiden.html)

Nikolas 18. Okt 2007 20:13

Re: Kollision von Ellipsoiden
 
Das Problem lässt sich aber noch dahingehend vereinfachen, dass man über die Anwendung einer Rotationsmatrix wenigstens eine Ellipse dahingehend dreht, dass ihre Achsen parallel zu den Achsen des KS liegen.

Dax 18. Okt 2007 20:21

Re: Kollision von Ellipsoiden
 
Zitat:

Zitat von Nikolas
u.A. musst du ein Polynom dritten Grades lösen).

http://de.wikipedia.org/wiki/Cardani...dritten_Grades

freak4fun 18. Okt 2007 20:27

Re: Kollision von Ellipsoiden
 
Nur so eine Überlegung: Da die Berechnung anscheinend sehr kompliziert ist, könn man dann eine Vorberechnung machen. Zum Beispiel die Berechnung das einfachen Abstand, um zu prüfen, ob eine Kollsion überhaupt in Frage kommt.

MfG
freak

Nikolas 18. Okt 2007 20:29

Re: Kollision von Ellipsoiden
 
@Dax: Das es da eine Lösung gibt, ist doch nichts Neues. Nur: Wie lang brauchst du, um so was zu implementieren. Und auch dann ist es noch ordentlich Arbeit.

3_of_8 18. Okt 2007 21:10

Re: Kollision von Ellipsoiden
 
Ich werde einen schnellen Kollisionstest per Bounding Sphere als ungefähres Kollisionskriterium implementieren (3 Subtraktionen, 4 Multiplikationen, 2 Additionen, 1 Vergleich, also sehr schnell zu berechnen).

Also, jetzt dazu, wozu ich das alles brauche. Ich denke momentan vage daran, eine Art Weltraum-Spiel zu programmieren (mit OpenGL). Wenn ich jetzt einen Kollisionstest machen will, muss ich möglicherweise testen, ob 20-30 Schiffe mit jeweils einer Station kollidieren. Jetzt sind Schiffe u.U. nicht gerade klein und Stationen sind riesig. Auch bei Beschuss durch Raketen/Partikelwaffen ergibt sich dieses Problem. Da stellt sich natürlich die Frage, ob ein Dreiecks-Dreiecks-Test in allen Fällen das richtige ist, da der eine Komplexität von O(m*n) hat (wobei m die Dreiecksanzahl des Schiffes, n die der Station ist). Da Schiffe eher länglich sind, lässt sich ihre Form u.U. nicht sehr gut mit einer Kugel approximieren, jedoch sehr gut mit einem Ellipsoiden. Darüber hinaus sollen die Schiffe Schilde besitzen, die bei einem Treffer das Projektil abfangen. Diese Schilde sollen dann ellipsoid das Schiff umgeben, wodurch ich sogar noch eine optisch ansprechende und logisch einleuchtende Erklärung für diese Kollision habe. Der Ellipsoid-Test wird dadurch also eher selten, der Polygon-Test noch seltener verwendet, was sich ressourcensparend auswirkt - und Ressourcen sind bei einem 3D-Echtzeit-Spiel immer knapp.

Nikolas 18. Okt 2007 22:18

Re: Kollision von Ellipsoiden
 
Du könntest dir auch überlegen die langen Formel durch andere geometrische Formen anzunähern. z.B. erst eine Halbkugel, dann einen Kegelstumpf, einen Zylinder, einen Kegelstumpf und eine Halbkugel. Sieht recht ähnlich aus und sollte recht einfach zu schreiben sein.

Hat OpenGL nicht schon Kollisionserkennungen frei Haus? Oder willst du alles per Hand schreiben?

Wie suchst du nach Kollisionen? Suchst du nach jedem Frame nach einer Schnittmenge oder berechnest du den Kollisionszeitpunkt exakt?

3_of_8 19. Okt 2007 11:18

Re: Kollision von Ellipsoiden
 
OpenGL hat Kollisionserkennung? Das wäre mir neu.

Und ich berechne die Kollision nach jedem Frame.

Nikolas 20. Okt 2007 12:16

Re: Kollision von Ellipsoiden
 
War nur geraten, ich habe mich bei unserem Projekt überhaupt nicht um die Darstellung gekümmert.
Wenn du die Kollision erst am Ende eines Frames testest, was machst du dann mit schnellen Objekten wie z.B. Schüssen? Wenn du eine dünne Wand und ein schnelles Geschoß hast, könnte es dir passieren, dass das Teil einfach durchfliegt. Oder was machst du, wenn du merkst, dass zwei Objekte, die eigentlich aneinander abprallen sollten, plötzlich ineinander stecken?
Wir haben zu sechst ein Semester an dem Projekt gebaut und jeder hat mal eine kleine Nachtschicht eingebaut. Und das war 2D!
Ich würde also sagen, dass dein Ziel, das alleine in brauchbarer Zeit und in 3D zu bauen, kaum erreichbar ist, wenn du die Kollisionen und Physik selbst schreiben willst.
Schau dir doch mal OGRE oder sowas an, da hast du die ganze Physik schon drin. Das wär vielleicht etwas einfacher, wobei dir Gruppe, die damit gearbeitet hat, nicht fertig geworden ist.
Wenn du also nicht die nächsten Jahre nur damit beschäftigt sein willst, solltest du vielleicht etwas weniger planen.

3_of_8 20. Okt 2007 12:30

Re: Kollision von Ellipsoiden
 
Okay, dann werde ich wohl eventuell doch auf Newton oder so umsteigen müssen. Newton ist aber, wie ich schonmal gemerkt habe, nicht unbedingt sehr schnell.

Nikolas 20. Okt 2007 14:00

Re: Kollision von Ellipsoiden
 
Schau dir doch mal das Ogre an. So wie es aussieht ist das Teil sehr mächtig, und nach Auskunft des anderen Teams kann man sich da in 2Wochen genügend einarbeiten, um etwas damit anzustellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz