Kollisionserkennungsmethoden

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Robert Wünsche
Beiträge: 243
Registriert: 29.08.2004 12:46
Wohnort: Irgendwo im nirgendwo
Kontaktdaten:

Kollisionserkennungsmethoden

Beitrag von Robert Wünsche »

Hallo ihr,

ich programmiere im moment an meiner physikengine, dabei hat sich ein problem mir in den weg gestellt:

Wie kann man berechnen, wo die kolision stat findet ?

was ich schon weiß :

-Mit kugeln
-Mit punkten und grundkörpern:
Die objekte werden in viele kleine punkte zerlegt und die werden wieder mit einem Grundobjekt auf eine kolision geprüft.

-Mit polygonen:
Ist ansich nicht schlecht, aber da man bei den runden gegenständen (Kugel, zylinder) die kolision nicht genau berechnen kann, fält diese methode weg !

Welche genauen kollisionsermitlungsmethoden giebt es denn noch ?

Im voraus: Danke !
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Wieso zerlegst du die Objekte in einzelne Punkte?
Ich habe das in meiner Engine ganz einfach per mathematischen Formeln erledigt.
Bild
Robert Wünsche
Beiträge: 243
Registriert: 29.08.2004 12:46
Wohnort: Irgendwo im nirgendwo
Kontaktdaten:

Beitrag von Robert Wünsche »

pfffff :roll:
Ich sags nochmal:
Ich gehe gerade in die 8te klasse , woher soll ich den wissen, wie man so was berechnet ?
Auserdem möchte ich alles in 3d progen !
Genau deshalb hab ich euch mal gefragt !

Danke !
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Robert Wünsche hat geschrieben: Ich bin nun mal mathematisch hoch begabt
....
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Robert Wünsche
Beiträge: 243
Registriert: 29.08.2004 12:46
Wohnort: Irgendwo im nirgendwo
Kontaktdaten:

Beitrag von Robert Wünsche »

...
Aber ich weiß nicht, wie ich das machen soll.
Soll ich es mir etwa aus den rippen schneiden ?
Na toll!

ICH HABE DAS NICHT GELERNT !
Du tun verstehen das --> gut !

Wie soll ich das denn berechnen :freak: ?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Als mathematisch hochbegabter könntest du des autodidaktisch lernen.
Du könntest einfach mal im Internet suchen (nur so als Anregung)
deinen Mathelehrer fragen (der freut sich bestimmt über dein Interesse)
und vieles mehr.

EDIT: Ach ja, du könntest Beispielcodes anschauen


Ich bin dir leider eine schlechte Hilfe, beschäftige mich einfach überhaupt nicht mit 3D

Simon

P.S.: Du brauchst hier nicht rumschreien, wir hören dich auch so

EDIT2: Des mit dem "aus den Rippen schneiden" ist ungesund, das würd ich lieber lassen
Robert Wünsche
Beiträge: 243
Registriert: 29.08.2004 12:46
Wohnort: Irgendwo im nirgendwo
Kontaktdaten:

Beitrag von Robert Wünsche »

Internet : Boaa, diese datenmenge
Mathe lehrerin ? : Macht nur bis klasse 10 !
Is also auch nichts !
Beispielcode: keine schlechte idee, bloss wo :? ?
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1755
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@Robert: auch wenn ich von 3D keine Ahnung hab, aber mit Google solltest Du schnell fündig werden, z.B. ergibt die Suche nach [google]Kollisionen erkennen[/google] u.a. diese Seite Kollisionen und Eigenkollisionen. Das ist nun sicherlich nicht das Paradebeispiel zur Beantwortung Deiner Frage, sollte aber nur verdeutlichen, wie schnell man etwas im Internet finden kann. Für speziellere Themen wie diesem wird es jedoch sicher ohne Englisch nicht gehen, gerade wenn es um Programmiererseiten geht.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

:mrgreen: und ich hätte wenigstens mal im PBoard Archiv nachgeschaut:
http://robsite.de/php/pureboard-archiv/ ... php?t=5160

Und wenn du mathe noch nicht so gut kannst helfen dir Bücher(ich denk inner 8. Klasse kann man auch schon was selbständig lernen). Sinus und Cosinus kannste sicher auch im internet lernen. Nur für weitergehende dinge, wie zum Beispiel das Anwenden um einen Ball oder sowas in der art zu berechnen sollte man sich ein gutes Buch zulegen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Robert Wünsche
Beiträge: 243
Registriert: 29.08.2004 12:46
Wohnort: Irgendwo im nirgendwo
Kontaktdaten:

Beitrag von Robert Wünsche »

Danke Dark dragon,
das mit der sinus und cosinus und tangens funktion ist für mich kein problem (hab ich schon rausbekommen),
Aber:
Die dreieckskolision ist algemein bei runden gegenständen irgentwie ungenau.

Ich bin immer noch auf der suche nach dem heiligen grall zwischen genauigkeit und rechenleistung, im internet hab ich auch nichts gefunden.

Aber vielleicht geht es ja auch so(wie in ODE angedeutet):
dort, wo der kollisionsradius unterschritten wird, wird die welt um die objekte in viele kleine bereiche zerlegt(also ein 3 dimensionales gitter), und in jedem bereich wird geprüft, ob beide körper drine sind, wenn ja --> kollision !)

Oder ich benutze einfach ODE, ist auch relativ stabil.
Hat jemand schon damit erfahrungen gemacht ?
Antworten