Simulation physikalischer Einflüsse

Slides:



Advertisements
Ähnliche Präsentationen
Oder als Formel nach Newton: F = m a
Advertisements

Mechanik Mathematische Grundlagen und Begriffe: Formel? Funktion
Kapitel 3: Erhaltungssätze
Kapitel 3: Erhaltungssätze
Anliegen des Koordinationsbüros Molekulare Biomedizin:
Kollisionen beschreiben Tag 6
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
1.3 Beschleunigung, Kraft und Masse (Dynamik)
1.5 Typen von Kräften A abgeleitete Kräfte: elastische Kraft, Muskelkraft, Reibungskraft, Schwerkraft, ... B fundamentale Kräfte: elektrische Kraft.
Gravitationskraft Für die Anziehung zwischen zwei relativ kleinen Massen (Raumschiff, Komet) variiert das Ergebnis nur noch vom Abstand r. Ergebnis: F~1/r2.
Drehmoment Drehmomentschlüssel r=0,4m F=50N r=0,2m F=100N Achtung:
Kraft und Gegenkraft 3. Newtonsche Gesetz: “actio gleich reactio”.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Kräfte.
Wie messen wir eine Kraft Fx ?
Die Newtonschen Gesetze
Präsentation des Fachbereichs PHYSIK
Starrkörpereigenschaften
Einführung in die Physik für LAK
Einführung in die Meteorologie (met211) - Teil VI: Dynamik der Atmosphäre Clemens Simmer.
Einführung in die Meteorologie (met210) - Teil VI: Dynamik der Atmosphäre Clemens Simmer.
im Gravitationsfeld der Erde
Einführung in die Meteorologie (met210) - Teil VI: Dynamik der Atmosphäre Clemens Simmer.
Einführung in die Physik für LAK
Hydro- und Aerodynamik
Physik für Mediziner und Zahnmediziner
Massenmittelpunkt, „Schwerpunkt“, Drehachsen und Trägheitsmoment
Masse und Kraft Masse: elementare Eigenschaft eines jeden Körpers
Reibungskraft an einer Kugel in laminarer Strömung
Die elektrische Feldstärke
Reibung zwischen festen Stoffen
Skalare, Vektoren.
Arbeit in Form von Kraft mal Weg
Kraft bei gleichförmiger Bewegung bezüglich rotierender Systeme
Mechanische Arbeit Arbeit bei unterschiedlicher Richtung von Kraft- und Weg am Beispiel der Hub-Arbeit.
Reibungskraft an einer Kugel in laminarer Strömung
Die vier Fundamentalkräfte
Zentripetal- und Zentrifugalkraft
Die vier Fundamentalkräfte
2. Das Gravitationsgesetz, die schwere Masse
Zentripetal- und Zentrifugalkraft
Kräfte.
Strömung realer Flüssigkeiten
Inhalt Gleichgewicht zwischen Gravitations- und Trägheitskräften auf Kreisbahnen Gravitation allein führt zum Verschmelzen aller Materie: „schwarze Löcher“
von Marco Bühler und Elia Bodino
Kräfte bei der Kreisbewegung
Welche Kräfte kennst Du?
Physik-Quiz 6. Klasse.
Ausgewählte Kapitel der Physik
Reibung Reibungskräfte sind die reactio auf die Bewegungskräfte actio
Die Trägheitskraft auf Kreisbahnen
Reibung zwischen festen Stoffen
Masse und Kraft Masse: elementare Eigenschaft eines jeden Körpers
weil ein Mammut sich nicht bewegen will
Erläuterungen zur Kraft
Lösen physikalischer Probleme mit Reibung und / oder mehr als drei Kräften Die folgenden Seiten sind für das selbständige Erarbeiten eines physikalischen.
Elektrisches Radialfeld
Lernplan für den Die Coulombkraft und das Potenzial in der Umgebung
2.1 Grundprinzipien der Bewegung: Die Newton‘schen Axiome
Die Newtonschen Axiome
Die Physikalischen Gesetze des Isaac Newton
Die Physikalischen Gesetze des Isaac Newton
Also – gib Gummi, dass es qualmt … !
Aufgaben zum Auflösen von Gleichungen Bearbeite jede Aufgabe schriftlich im Heft oder auf einem Blatt. Und nun geht’s los!
2.5. Reibungskräfte zwischen festen Körpern
2. Dynamik Zur vollständigen Beschreibung und Erklärung von Bewegungen müssen die Ursachen für diese Bewegungen (Kräfte, Drehmomente) und die Eigenschaften.
Vergleich von Masse und Gewicht
Kraft, Feld, Potenzial und potenzielle Energie am Beispiel Gravitation
Satellitengeodäsie Newtonsche Axiome Torsten Mayer-Gürr
Newtons Gravitationsgesetz
 Präsentation transkript:

Simulation physikalischer Einflüsse

Simulation physikalischer Einflüsse Geschosse und deren Flugbahnen Simulation von Reibungseinflüssen Modellierung besonderer physikalischer Eigenschaften, bspw. „Schwarze Löcher“ und Gravitationsschockwellen

Grundsätzliches Gute Bewegungsmodelle fördern den Realismus eines Spiels. Voraussetzung für gute Bewegungsmodelle: Klärung, welche Bewegungsfreiheitsgrade ein Objekt haben kann (in Translations- und Rotationsbewegungen)? Sind diese voneinander abhängig oder unabhängig?

Geschossflugbahnen Simulation der Flugbahn durch Berechnung der Anfangsgeschwindigkeit Berücksichtigung von Wind und Erdanziehung Überprüfung, ob etwas getroffen wurde

Geschossflugbahnen Anfangsgeschwindigkeit = muendungsgeschwindigkeit* flugrichtung muendungsgeschwindigkeit : Vektorbetrag; abhängig von der Kanone flugrichtung: Ausrichtung der Kanone in drei Dimensionen, entspricht Definition der Polarkoordinaten einer Kugel: Eigenverschiebung.x = velocity*cosf(Anstellwinkel)* sinf(Schwenkwinkel); Eigenverschiebung.y = velocity*sinf(Anstellwinkel); Eigenverschiebung.z = velocity*cosf(Anstellwinkel)* cosf(Schwenkwinkel);

// Wenn Kanone geladen ist, dann kann sie abgefeuert werden: if(Cannon_loaded == TRUE) { // Kanone kann abgefeuert werden mit: Fire_Cannon = TRUE; } // Wenn Kanone abgefeuert wird: if(Fire_Cannon == TRUE && Cannon_fired == FALSE) { // Anfangsgeschwindigkeit initialisieren Eigenverschiebung.x = velocity*cosf(Anstellwinkel)* sinf(Schwenkwinkel); Eigenverschiebung.y = velocity*sinf(Anstellwinkel); Eigenverschiebung.z = velocity*cosf(Anstellwinkel)* cosf(Schwenkwinkel); Cannon_fired = TRUE; Fire_Cannon = FALSE; Treffer = FALSE; Load_Cannon = TRUE; // Kanone neu laden // Wenn Kanone abgefeuert wurde und das Geschoss unterwegs ist: if(Cannon_fired == TRUE) { if(Eigenverschiebung.y > y_velocity_Max) Eigenverschiebung.y -= g*FrameTime; Eigenverschiebung += Wirkungsfaktor*Windgeschwindigkeit; Verschiebungsvektor = Eigenverschiebung*FrameTime-PlayerVerschiebung; // Überprüfung von eventuellen Treffern if(Treffer == TRUE) Cannon_fired = FALSE;

Reibung Haftreibung (Bodenhaftung) muss immer überwunden werden, um ein Objekt in Bewegung zu versetzen. -> bestünde diese nicht, würde jede noch so kleine Beschleunigung zu Bewegung führen. Gleitreibung, Kraft, die alle bewegten Objekte gleichmäßig abbremst. -> befindet sich ein Objekt in Bewegung, betrachten wir nur noch die Gleitreibung. (stark idealisierte Bedingungen, da Bodenbeschaffenheit außer acht gelassen wird, Berücksichtigung durch Reibungskoeffizienten) Eigenverschiebung += Reibungsbeschleunigung; Reibungsbeschleunigung = Reibungskoeffizient * - Bewegungsrichtung Reibungskoeffizient = μ * g , wobei μ materialabhängig ist. Hier ist der Spieldesigner gefragt!

Reibungskräfte in verschiedenen Ebenen Horizontale Ebene: Nur die Reibung wirkt der Zugkraft entgegen: Reibungsbeschleunigung = Reibungskoeffizient * -Bewegungsrichtung; Schiefe Ebene: Es wirkt eine Gegenkraft, zusammengesetzt aus Reibung und Hangabtriebskraft, die sich über Winkelfunktionen berechnen lassen: Gegenbeschleunigung = (Reibungskoeffizient*sinf(a)+ g*cosf(a))* -Bewegungsrichtung;

Reibung in der Kurve

Rasante Kurvenfahrt Zentrifugalbetrag=Masse*Geschwindigkeitsbetrag*Lenkgeschwindigkeit; if(Zentrifugalbetrag > Bodenhaftung) { // Driftbewegung } Weil die Driftbewegung senkrecht zur Fahrtrichtung und Drehachse ist, ist sie gleich dem Kreuzprodukt dieser drei Vektoren: D3DXVec3Cross(&Driftrichtung, &Drehachse, &Fahrtrichtung); Die Driftbeschleunigung ergibt sich jetzt aus der Differenz von Fliehkraft und Gleitreibung: Driftbeschleunigung =(Zentrifugalbetrag-Gleitreibung)/Masse*Driftrichtung;

Ein schwarzes Loch Vereinfachung! ... Das newtonsche Gravitationsgesetz besagt, dass sich die Gravitationskraft F, mit der sich zwei Massen m1 und m2 anziehen, proportional zu den Massen beider Körper und umgekehrt proportional zum Quadrat des Abstandes r der Massenschwerpunkte verhält ... Vereinfachung! Richtung = Ortsvektor_schwarzesLoch – Ortsvektor_Raumschiff; Entfernung = NormalizeVector(&Richtung, &Richtung); acceleration_betrag = Masse_SchwarzesLoch/(Entfernung*Entfernung); // G=1, damit gibt’s aber auch keine Masse in Kilogramm Eigenverschiebung += acceleration_betrag*FrameTime*Richtung;

Modellierung von (Gravitations-)Schockwellen // Initialisierung der ersten Schockwelle: Schockwelle_Entstehungszeit = GetTickCount()+lrnd(300000, 600000); Schockwelle_LebensdauerMax = lrnd(10000, 20000); Schockwelle_Wirkungsdauer = lrnd(2000, 5000); Schockwelle_Masse = frnd(1000.0f, 10000.0f); Schockwelle_Lebensdauer = 0; Schockwelle_aktiv = FALSE // Irgendwo im Quellcode: actual_time = GetTickCount(); if(Schockwelle_aktiv == FALSE) { if(actual_time >= Schockwelle_Entstehungszeit) Schockwelle_aktiv = TRUE } if(Schockwelle_aktiv == TRUE) { // Berechnung der momentanen Lebensdauer der Schockwelle: Schockwelle_Lebensdauer=actual_time-Schockwelle_Entstehungszeit if(Schockwelle_Lebensdauer < Schockwelle_LebensdauerMax) { Richtung = Ortsvektor_schwarzesLoch – Ortsvektor_Raumschiff; Entfernung = NormalizeVector(&Richtung, &Richtung); //Liegt Objekt im Wirkungsbereich der Schockwelle? if(Entfernung < Lightspeed*Schockwelle_Lebensdauer) { if(Entfernung > Lightspeed*(Schockwelle_Lebensdauer- Schockwelle_Wirkungsdauer)){ // Berechnung der Beschleunigung acceleration_betrag = Masse_SchwarzesLoch/(Entfernung*Entfernung); Eigenverschiebung += acceleration_betrag* FrameTime*Richtung; } } } else { // Neue Schockwelle initialisieren Schockwelle_Entstehungszeit=actual_time+lrnd(300000, 600000); } }