Autor |
Beitrag |
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Do 14.10.04 13:37
Hallo allesamt!
Daß ich Physik hatte, ist schon eine Weile her, ich bräuchte mal eure Hilfe.
Ich habe zwei Objekte (Meshes, also Drahtgittermodelle) im 3-dimensionalen Raum. Jedes Objekt hat eine Matrix, die Infos über die Position und Ausrichtung im Raum enthält, und eine, über die die Bewegung pro Frame realisiert wird. Der Massenschwerpunkt ist der Nullpunkt der Objekte. Die Masse eines Objekts ist ebenfalls bekannt.
Wenn es nun zu einer Kollision (der Kollisionspunkt für jedes Objekt ist halbwegs genau bekannt) kommt, sollen die Abläufe nach den gegebenen physikalischen Gesetzen erfolgen, die Bewegungsmatrizen müssen sich dementsprechend ändern.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| I3DObject=interface ... property Mass:Single read GetMass write SetMass; property Matrix:TD3DXMatrix read GetMatrix write SetMatrix; property DeltaMatrix:TD3DXMatrix read GetMatrix write SetMatrix; end;
procedure GenerateCollideMatrices(Obj1,Obj2:I3DObject;CollisionPoint1,CollisionPoint2:T3DXVector3;var NewMatrix1,NewMatrix2:TD3DXMatrix) begin end; |
Diese Infos sollten meiner Meinung nach alles sein, was man für eine realistische Darstellung benötigt, oder?
Diese Prozedur gilt es nun mit Leben zu füllen, und da habe ich irgendwie einen totalen Blackout.
Cu,
Udontknow
|
|
jasocul
Beiträge: 6388
Erhaltene Danke: 146
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 14.10.04 13:47
Fehlt nicht noch die Elastizität, um den Energieverlust bei der Kollision zu berechnen?
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Do 14.10.04 13:49
Äh, ich dachte ein elastischer Stoss hat keinen kinetischen Energieverlust zur Folge...? Wie gesagt, ist lange her mit Physik.
Naja, gut, wenn man den Algo verallgemeinern will, kann man das natürlich noch mit einbeziehen.
Cu,
Udontknow
|
|
raziel
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Do 14.10.04 13:52
Udontknow hat folgendes geschrieben: | Äh, ich dachte ein elastischer Stoss hat keinen kinetischen Energieverlust zur Folge...? |
War ich mir bis vor 5 Minuten auch noch ziemlich sicher, dass dem so ist.
_________________ JSXGraph
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Do 14.10.04 13:57
Hier gibt´s die Erklärung :
Wikipedia: | Ideal elastischer Stoß
Zwei Körper stoßen aufeinander, ohne dass dabei Energie in innere Energie umgewandelt wird, z.B. Wärme oder Deformationsenergie.
In Wirklichkeit gibt es diesen Stoß natürlich nicht, aufgrund diverser Faktoren, wie z.B. der Reibung. |
Cu,
Udontknow
|
|
.Chef
Beiträge: 1112
|
Verfasst: Do 14.10.04 14:04
Nimm doch den Impulserhaltungssatz. Spart zumindest die Quadrate.
_________________ Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Do 14.10.04 16:20
Nun, ich muss sowohl Impuls- als auch Energie-Erhaltungs-Satz berücksichtigen.
Hmm, hat vielleicht jemand Erfahrung mit der Open Dynamics Engine gemacht?
Cu,
Udontknow
|
|
P_G
Beiträge: 75
Win XP
Delphi 7 / 8 Enterprise
|
Verfasst: Di 19.10.04 12:16
Titel: Elastischer Stoß...
Hi,
Die Open Dynamics Engine ist eine der führenden Physics Engines zur Zeit und wird von vielen 3d-Game-Engines genutzt (z.T. in modifizierter Form).
Es gibt eine Delph-Version unter www.cambrianlabs.com/Mattias/DelphiODE/
Ich fürchte nur, die Einarbeitung in diese Materie wird etwas dauern...
Gruß, P_G
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mi 20.10.04 16:09
Ah, das ist ja gut, danke!
|
|
kachel81
Beiträge: 63
|
Verfasst: Mi 20.10.04 16:32
Wenn sich Deine Körper nach dem Stoß im Raum bewegen sollen benötigst Du mindestens noch 2 andere Formeln neben dem elastischen Stoß:
Reflexionssatz - wie prallen die Körper voneinander ab
Schräger Wurf - wie verläuft die weitere Flugbahn
Wenn Du den Luftwiderstand berücksichtigen willst, wirds dann nochmal komplizierter.
Tafelwerk hab ich hier, falls die Formeln benötigt werden.
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Do 21.10.04 14:18
Nichts für ungut, aber weder der Reflexionssatz noch der schräge Wurf haben irgendetwas mit dieser Problematik zu tun, ebensowenig der Luftwiderstand.
Cu,
Udontknow
|
|
kachel81
Beiträge: 63
|
Verfasst: Do 21.10.04 14:27
Dann rollen die Objekte also nur auf einer Ebene aufeinander zu? Ich dachte die treffen sich "schwebend" im Raum und prallen voneinander ab oder so, naja?
|
|