Luftreibung und andere physikalische Gesetze in einem 3D-Programm.



  • Hallo Community.
    Ich arbeite gerade an Kollisionserkennung mit physikalischer Einwirkung.
    Als erstes hab ich nur eine Kollisionerkennung für einen Punkt der mit einer unendlichen Fläche kollidieren kann geschrieben.
    Bevor ich mich daran mache,eine Kollisionserkennung für einzelne Polygone zu schreiben,wollte ich erst die physikalischen Gesetze erweitern.
    Schwerkraft hab ich.Nur würde der Punkt bei horizontalen Kräften unendlich lang in konstanter Geschwindigkeit fliegen.
    Genauso wie,wenn der Punkt vertikalen Krafteeinfluss hat,da er auch da mit konstanter Geschwindigkeit fliegt.
    Deswegen brauch ich die Luftreibung.
    Dafür wollte ich fragen,ob jmd. eine Formel für die Luftreibung kennt.Diese sollte folgendes beachten.
    -Normalen sollten in der Formel beachtet werden(ein schräges Polygon hat einen schwächeren Luftwiderstand als ein horizontales)
    -Größe der Fläche(je größer die Fläche,umso stärker der Luftwiderstand)

    Außerdem fehlt mir eine Formel für Schwerkraftsbeschleunigung(ein Objekt das fällt,hat nicht direkt eine Geschwindigkeit von 9.81 m/s)

    Dann hab ich auch noch Probleme mit der Kollisionsbearbeitung:
    -Kollsionsbearbeitung
    z.B. wenn eine Fläche(oder Kugel,etc..) auf eine Fläche trifft,wie berechne ich den Ausfallswinkel
    -Kräfte,Masse...
    z.B. wenn ein Objekt mit der bloßer Schwerkraft auf eine horizontale Fläche fällt,wie generiere ich eine Gegenkraft die gegen die Schwerkraft "drückt" und wie bringe ich dabei die Masse ins Spiel.Außerdem wollte ich Fragen,was für ein Faktor für das Springen von Objekten zuständig ist(z.B ein Gummiball).

    So viele Fragen! 😕

    Ich hoffe,dass wenigstens ein paar davon beantwortet werden.
    Würde mich freuen.

    Danke! 🙂



  • ich würde erstmal die Kollisionserkennung bearbeiten und mich dann an die Physik wagen. Du brauchst die Kollisionserkeennung für die Physik, nicht umgekehrt.

    Luftwiderstand: vernachlässigen. Für dein Punktbeispieel taugt das eh nichts, weil ein Punkt Luftwiderstand 0 hat.

    "Außerdem fehlt mir eine Formel für Schwerkraftsbeschleunigung(ein Objekt das fällt,hat nicht direkt eine Geschwindigkeit von 9.81 m/s)"

    Selbst Objekte die sehr lange fallen haben nur kurzzeitig diese Geschwindigkeit, nämlich Exakt nach der ersten Fallsekunde (Luftwiderstand vernachlässigt). Es heißt ja auch Beschlunigung, weil es eben nicht 9.81m/s sondern 9.81m/s^2 sind. Ansonsten wäre es ja eine EErdgeschwindigkeit. Klingelts? 🙂

    Wenn nicht, schau in ein Physikbuch. Bücher sind eh eine großartige Erfindung. Und Physik ist spannend. Los, ließ es jetzt!

    "z.B. wenn eine Fläche(oder Kugel,etc..) auf eine Fläche trifft,wie berechne ich den Ausfallswinkel "
    Der ist gleich deem Einfallswinkel(abhängig vom Stoßmodell). Physikbuch!

    "z.B. wenn ein Objekt mit der bloßer Schwerkraft auf eine horizontale Fläche fällt,wie generiere ich eine Gegenkraft die gegen die Schwerkraft "drückt" und wie bringe ich dabei die Masse ins Spiel"
    Wozu glaubst du das zu brauchen?

    "Außerdem wollte ich Fragen,was für ein Faktor für das Springen von Objekten zuständig ist(z.B ein Gummiball). "
    Die Federkonstante. Physikbuch.

    Mechanik ist dein Freund.



  • Die Formeln findest du auch in wikipedia. Allein den cw Wert muss man mit Hilfe von Tabellen schaetzen.



  • -Ja,Physik-Bücher zu lesen hatte ich vor,mein Stiefvater wollte mir noch sowieso ein paar Physik-Bücher suchen,die er noch irgendwo hat.

    -Also meinst du,dass jede Sekunde die Beschleunigung eines Objektes durch die Schwerkraft um 9.81 m/s erhöht wird?

    -Zum Thema Gegenkraft:Durch die Kollision wird ja schon das Durchfliegen des Objektes durch ein anderes hindurch,verhindert.Hatte ich völlig vergessen,und bevor ich behoben hab,hab ich die Objekte immmer durch andere hindrurchfliegen lassen,was ich dadurch verhindert hab,dass sie zurück zum Kollisionpunkt gesetzt werden.

    -Ja die Federkonstante...hatten wir schon mal in Physik-nur zu dumm,dass ich es schon wieder halb verlegt,bzw. nicht einmal daran gedacht habe.

    Naja...Im großen und ganzen erstmal danke.
    Und als nächstes erstmal Physikbücher lesen,bis mein Kopf platzt. 🙂

    p.s.:Bräuchte ich für Strahlenberechnungen(für Kollisonen) Mathebücher,kann ich es auch über Tutorial,bzw. z.B. Wikipedia-Artikel lernen,oder kommt es sogar in irgendeiner Form in Physik_Büchern vor.



  • Di Frage über die Kollisionsfrage ist die zu dem Thema sicher am häufigsten gestellte Frage. Einmal Google bemüheen gibt dir mit Sicherheit 1000 Hits.

    versuch mal

    collision detection polygon

    oder

    collision detection

    oder

    Kollisionserkennung



  • coder++ schrieb:

    -Also meinst du,dass jede Sekunde die Beschleunigung eines Objektes durch die Schwerkraft um 9.81 m/s erhöht wird?

    Nein, die Beschleunigung bleibt gleich. Ausserdem wird die Beschleunigung nicht im m/s gemessen. Das ist so aehnlich als wuerdest du sagen, das Gewicht wird jedes Sekunde um 3 Grad erhoeht. (a.k.a. Unsinn)



  • Ok,jetzt weiß ich endlich,wie die Schwerkraft funktioniert:
    Zur Geschwindigkeit,wird die Beschleunigung hinzugefügt.

    Und ja...hab bis jetzt noch keine Seite gefunden,in der die Kollisionsberechnung von zwei Polygonen behandelt wird,aber ich such weiter,und falls ich immer noch nichts finde,suche ich eine Kollisions-Berechnung für Dreiecke,da diese ja das selbe wie Polygone sind(vorrausgesetzt man benutzt nur Polygone,mit drei Eckpunkten,was ich auch mache).
    Vielleicht lässt sich dazu auch was in Mathebüchern finden,auch wenn ich mir nicht sicher bin,ob da was darüber steht,weil eher Berechnungen zwischen einem Strahl und einem Dreieck beinhaltet,als zwischen einem Dreieck und einem Dreieck.

    [EDIT]Ok hab jetzt ein 150-Seitiges pdf gefunden:"Efficient Collision Detection for
    Point and Polygon Based Models"


Anmelden zum Antworten