Einfache Rope-Physik ohne Kollision?



  • Hallo,

    für mein aktuelles Projekt brauche ich eine kleine Physik-Funktion, die mir ein Kabel simuliert. Dabei muss keine Kollision berücksichtigt werden (es gibt sonst keine konkurrierenden Objekte in der Szene), das Kabel soll aber an beiden Ecken fest verankert sein und sich einfach entsprechend dehnen. Ein gutes Beispiel, das mir gerade dazu einfällt sind die Stecker von "Crazy Machines", das kennt vielleicht jemand hier. Für alle anderen hab ich das hier gefunden: http://www.youtube.com/watch?v=nwDBp5gqjsY&feature=related (bei ca. 50 Sekunden).

    Ich kenne ja bereits Box2D, jedoch ist das viel zu viel für meine Anforderungen. Daher: Kennt jemand einen kleinen und möglichst einfachen Algorithmus, wie man so etwas hinbekommt?

    Danke schonmal!



  • Achtung: Dreckiger Hack

    Man kann ein Seil als Reihe von Punkten betrachten, die mit Federn verknüpft sind. Dazu wird einfach jeder Punkt mit einer Feder mit dem nächsten und vorherigen Punkt verknüpft, sodass sich eine Kette ergibt.

    Diese Feder kannn man mit Hooke's Law berechnen: http://en.wikipedia.org/wiki/Hooke's_law

    Du willst vermutlich noch Gravitation benutzen, sodass die Kette nach unten fällt und irgend eine Art von Dämpfung/Reibung, dass die Kette zur Ruhe kommt.

    Da F = m*a ist, kannst du jeden Zeitschritt die so errechnete Beschleunigung zur Geschwindigkeit des Partikels addieren und dann zu der Position die Geschwindigkeit addieren.

    Geht auch sicherlich besser/effizienter/realistischer. Könnte aber für deinen Anwendungsfall reichen und ist eigentlich ganz simpel zu Implementieren (Zumindest bei etwas Physikkentniss; aber ohne die wird es wahrscheinlich sowieso schwer selbst zumzusetzen).


Anmelden zum Antworten