THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION

Slides:



Advertisements
Ähnliche Präsentationen
Polynomial Root Isolation
Advertisements

Vom graphischen Differenzieren
Die deutsche Satzstellung
Kapselung , toString , equals , Java API
Mechanik Mathematische Grundlagen und Begriffe: Formel? Funktion
(Harmonische) Schwingungen
On a Buzzword: Hierachical Structure David Parnas.
Gravitationskraft Für die Anziehung zwischen zwei relativ kleinen Massen (Raumschiff, Komet) variiert das Ergebnis nur noch vom Abstand r. Ergebnis: F~1/r2.
Java: Objektorientierte Programmierung
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Breitenabhängige Energiebilanzmodelle - Energietransport -
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Starrkörpereigenschaften
Variationsformalismus für das freie Teilchen
Einführung in die Physik für LAK
Abkürzungen mit Präpositionen German Prepositional Contractions
Geschwindigkeit Beschleunigung
Zeit, Ort und Weg Geschwindigkeit Beschleunigung
Arbeit, Energie.
Skalare, Vektoren.
Quantenchemische Grundlagen (I)
Quantenchemische Grundlagen (I)
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Folie 1 Kapitel IV. Matrizen Inhalt: Matrizen als eigenständige mathematische Objekte Zusammenhang zwischen Matrizen und linearen Abbildungen Produkt von.
§3 Allgemeine lineare Gleichungssysteme
Geschwindigkeit Beschleunigung
Weg Geschwindigkeit Beschleunigung
Skalare, Vektoren.
Zentripetal- und Zentrifugalkraft
Zentripetal- und Zentrifugalkraft
You need to use your mouse to see this presentation © Heidi Behrens.
Dynamische Datentypen
Kräfte bei der Kreisbewegung
Lösen von quadratischen Ungleichungen
Die Olympischen Sommerspiele 2012 (offiziell Spiele der XXX. Olympiade genannt) sollen vom 27. Juli bis 12. August 2012 in London stattfinden. London ist.
PHP: Operatoren und Kontrollstrukturen
Die Trägheitskraft auf Kreisbahnen
Data Mining Spectral Clustering Junli Zhu SS 2005.
deterministisches chaos
Coordinating Conjunctions Why we need them & how to use them deutschdrang.com.
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
Vom graphischen Differenzieren
Wind fields can e.g. be calculated using the so-called momentum equations which are based on the Navier Stokes equations. But this is complicated mathematics.
Dr.-Ing. René Marklein - EFT I - WS 06/07 - Lecture 7 / Vorlesung 7 1 Elektromagnetische Feldtheorie I (EFT I) / Electromagnetic Field Theory I (EFT I)
Zahlenwert beschrieben Beispiele: Masse: 7 kg Temperatur: 20 °C
THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION.
Kapitel 3: Erhaltungssätze
Rules of Play - Game Design Fundamentals by Katie Salen and Eric Zimmerman Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Lineare Gleichungen Allgemeine Einführung Äquivalenzumformungen
Der Wiener Prozess und seltene Ereignisse
Kapitel 4 Grammar INDEX 1.Ordinal Numbers 2.Relative Pronouns and Relative Clauses 3.Conditional Sentences 4.Posessive: Genitive Case.
Die Physikalischen Gesetze des Isaac Newton
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
Die Physikalischen Gesetze des Isaac Newton
Reihenfolge der Operatoren
Der Winkel zwischen Vektoren
Word order: 1.In a main clause the VERB is the second idea: Helgakommteben aus der Bäckerei This may not be the second word Meiner Meinung nachsind Hobbys.
How to play: Students are broken up into 2-3 teams (depending on class size). Students can see the game board and the categories, but not point values.
Deutsch 3 Frau Snell. Unsere Ziele: use the present perfect tense to describe actions in the past  Tagesordnung  Wir beginnen!  Was habt ihr letzte.
Forces Maintaining Equilibrium or Changing Motion.
Volume 1, Chapter 8.
Was hast du gemacht? What did you do?
Was hast du gemacht? What did you do?
The Conversational Past
The Conversational Past
Pflichtteil 2016 Aufgabe 6: Gegeben ist die Gerade
Das Vektorprodukt Wir definieren erneut eine Multiplikation zwischen zwei Vektoren, das Vektorprodukt, nicht zu verwechseln mit dem Skalarprodukt. Schreibe.
 Präsentation transkript:

THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION

THE MATHEMATICS OF PARTICLES

Vektoren & „Calculus“ - Definition - „The handedness of space“ - Mathematik und Vektoren ------------------------------------ - „differential calculus“ - „integral calculus“

---------------------------------- Vektoren ----------------------------------

- Verschiedene Ansichten auf Vektoren: als einfache Gleichungen (x=2y; y=2,3 => x=4,6), mal als Struktur mit Skalaren zur Multiplikation, Addition und Subtraktion der Werte. - Im 2D und 3D dienen Vektoren als Abbildung von Positionen in einem Raum. Und jede Position hat nur einen beschreibenden Vektor.

- „handedness of space“ - 2 Wege zur Einrichtung eines Koordinaten-Systems: - „left-handed way“ & „right-handed way“ - Es gibt kein einheitliches System dafür – Jeder Entwickler nimmt eine andere Form – es spielt für den Code der Physik keine Rolle.

- Vektoren können aber auch die Angaben einer Veränderung der Position beschreiben:

class Vector3 { // ... Other Vector3 code as before ... /** Gets the magnitude of this vector. */ real magnitude() const return real_sqrt(x*x+y*y+z*z); } /** Gets the squared magnitude of this vector. */ real squareMagnitude() const return x*x+y*y+z*z; /** Turns a non-zero vector into a vector of unit length. */ void normalize() real l = magnitude(); if (l > 0) (*this)*=((real)1)/l; };

Skalar- und Vektor-Multiplikation - Alle Komponente des Vektors werden mit dem Skalar multipliziert: class Vector3 { // ... Other Vector3 code as before ... /** Multiplies this vector by the given scalar. */ void operator*=(const real value) x *= value; y *= value; z *= value; } /** Returns a copy of this vector scaled to the given value. */ Vector3 operator*(const real value) const return Vector3(x*value, y*value, z*value); };

Vektor Addition und Subtraktion class Vector3 { // ... Other Vector3 code as before ... /** Adds the given vector to this. */ void operator+=(const Vector3& v) x += v.x; y += v.y; z += v.z; } /** * Returns the value of the given vector added to this. */ Vector3 operator+(const Vector3& v) const return Vector3(x+v.x, y+v.y, z+v.z); };

Komponenten-Produkt & Skalar-Produkt - „KP“ ist nichts anderes als eine einfache Multiplikation von zwei Vektoren, mit einem Vektor als Ergebnis: - Beim „SP“ werden die Vektoren ebenfalls multipliziert, allerdings wird das Ergebnis zu einem Skalar:

Vektor-Produkt - auch genannt: Kreuz-Produkt, aufgrund der überkreuzenden Berechnung: - ist nicht kommutativ, d.h. a x b ungleich b x a. Bei den anderen Operatoren wäre das Ergebnis trotz Tausches korrekt. Für ein korrektes Ergebnis müsste man daraus folgendes machen: a x b = -b x a - geometrisch gesehen, ist das „VP“ sehr wichtig für die Richtungsangaben, da jede Richtung orthogonal angegeben wird.

Orthogonale Ebene - für die Erstellung einer orthogonalen Ebene mit 3 gleichen Vektoren, wollen wir diese Normalisieren. „1. Find vector c by performing the cross product c = a × b. 2. If vector c has a zero magnitude, then give up: this means that a and b are parallel. 3. Now we need to make sure a and b are at right angles. We can do this by recalculating b based on a, and c using the cross product: b = c × a (note the order). 4. Normalize each of the vectors to give the output: a, b, and c.“ - Vektoren sind zu einander orthogonal, wenn ihr Skalar-Produkt 0 ergibt!

------------------------------ Calculus ------------------------------

Definition - jede Form von mathematischen Systemen. - in unserem Fall, spricht man von der Analysis: => „the study of functions that operate on real numbers“ - Veränderung über Zeit: Position des Objekts oder seine Geschwindigkeit. - 2 Wege zum Verstehen: 1. Beschreibung der Veränderung an sich. 2. Beschreibung des Ergebnis der Veränderung.

DIFFERENTIAL CALCULUS - Für die Rate der Veränderung einer Position wird in der Programmierung von dem Begriff „velocity“ gesprochen. - Berechnung der „velocity“: - Genauere Lösung indem die Lücke unendlich klein gemacht wird: - Zur Vereinfachung:

Beschleunigung - Neben der Geschwindigkeit besitzt das Objekt eine Beschleunigung. - Wenn p (Position) und v( „velocity“) gegeben sind, können wir diese berechnen. - Die Beschleunigung ist die Rate der Veränderung der Geschwindigkeit eines Objekts. - Formel:

„Vector Differential Calculus“ - bei Vektoren sieht die Bestimmung ähnlich aus. - die vorangegangenen Formeln zur Bestimmung von Geschwindigkeit und Beschleunigung, sind für 3D geeignet und lassen sich so, auf jede einzelne Variable eines Vektors anwenden:

Integral Calculus - in physics engines wird die Integration dazu benutzt, Position und die Geschwindigkeit zu aktualisieren. - Formel: p° = Geschwindigkeit am Anfang des Zeitintervals p°° = Beschleunigung über die komplette Zeitspanne - In der Mathematik werden die Formeln immer so umgestellt, das man aus einer Formel für die Beschleunigung, eine Formel für Geschwindigkeit erhält usw.

„Vector Integral Calculus“ - Berechnung auf Komponent-für-Komponent Basis:

THE LAWS OF MOTION

Partikel & Gesetze & Integrator Definition ------------------------------------ - „The first two laws“ - „Momentum, Gravity and Velocity“ - Integration einzelner Werte - Vollständige Integration

Ein Partikel - hat eine Position, aber keine Ausrichtung. Bsp.: Kugel = Uns ist egal in welcher Richtung sie zeigt, wichtig ist, in welche Richtung sie sich bewegt. - Für jedes Partikel wird eine ständige Aktualisierung von verschiedenen Eigenschaften benötigt: → aktuelle Position, die Geschwindigkeit und die Beschleunigung. - Diese Werte sind alles Vektoren.

Physics engines basieren auf den Gesetzen der Bewegung von Newton. - Er entwickelte 3 Gesetze die sehr genau beschreiben, wie sich „Partikel“ verhalten. - Die ersten beiden lauten: „1. An object continues with a constant velocity unless a force acts upon it. 2. A force acting on an object produces acceleration that is proportional to the object’s mass.“

1. Gesetz - erklärt uns, was geschieht, wenn keine Kräfte in der Umgebung vorhanden sind. - Ein Objekt, welches sich in einem Raum ohne Kräfte bewegt, wird sich immer weiter mit einer konstanten Geschwindigkeit bewegen, da keine Kräfte eine Verlangsamung oder einen Stop bewirken könnten. - in der realen Welt ginge dies nicht, in einer Engine allerdings schon. class Particle { // ... Other Particle code as before ... /** * Holds the amount of damping applied to linear * motion. Damping is required to remove energy added * through numerical instability in the integrator. */ real damping; };

2. Gesetz - Mechanismus bei welcher Kraft die Bewegung des Objekts verändert wird. - Wir können nicht direkt an der Geschwindigkeit oder Position arbeiten. - Eine Manipulation der Beschleunigung durch die Implementierung einer Kraft, verändert sowohl die Geschwindigkeit als auch die Position, => Bei manueller Änderung der voran gegangenen Werte, beginnen die Partikel zu zucken oder zu springen. Dem Integrator den Befehl der Veränderung der Beschleunigung zu geben, rundet das Ganze stark ab.

Gleichung zur Kraft - Der zweite Teil von Newton 2, beschäftigt sich mit der Relation von Beschleunigung zur Kraft. - Für die gleiche Kraft, erfahren zwei Objekte unterschiedliche Beschleunigungen, basierend auf ihrer Masse: - Diese Formel wird dann dazu benutzt, die Beschleunigung zu berechnen um sie anschließend per Integrator, an ein Objekt zu binden.

Masse zu einem Partikel hinzufügen - Neben der Geschwindigkeit und der Position, benötigt das Objekt auch eine Masse, um die genaue Auswirkung auf die Kraft zu messen. - Die 0 Masse! => Beschleunigung geht ins unendliche, solange die Kraft bei 0 liegt. Das darf niemals vorkommen! - Für unbewegliche Objekte, wird meist eine unendliche Masse genutzt, damit ihre Beschleunigung 0 wird. - class Particle { real inverseMass; };

„Momentum“ und Geschwindigkeit - Bei Newton 1, wird von der Geschwindigkeit geredet. In unserem Fall ist das aber inkorrekt: Momentum: Produkt aus Geschwindigkeit und Masse - Bei gleichbleibender Masse, würde die Beschleunigung auch gleich bleiben <=> Bei verändernder Masse, verändert sich auch die Beschleunigung dazu.

Gravitation - Wichtigster Aspekt einer „physic engine“! - Erscheint bei jeder Kombination von Objekten. - Newton bestimmte mit seinen 3 Gesetzen und der Gravitationsregel die Relation von Planeten und ihren Monden bezüglich ihrer Bewegung, auf einem neuem Level der Genauigkeit. - „law of universal gravitation“: - Die Erde ist bei unserer Betrachtung der Ausgangspunkt für die Gravitation, von daher vereinfacht sich die Formel in: f = mg ; m=die Masse, f=die Kraft, g=“universal gravitational constant“ - Egal welche Masse ein Objekt vorweist, seine Veränderung in der Beschleunigung bleibt durch die Gravitation konstant.

Der Wert von g - normaler Wert: 10 m/s² - für die meisten Spiele ist dieser Wert aber ungeeignet, dadurch wird diese von den jeweiligen Entwicklern modifiziert: Bsp.: 15 m/s² für Shooter; 20 m/s² für Rennspiele. - Da die Gravitation nach unten ausgerichtet ist, verändert sich bei den Vektoren der Y-Wert: - g = Beschleunigung - g =

Der „Integrator“ - Dieser hat nun 2 Aufgaben: 1. ständiges Update der Position des Objekts. 2. ständiges Update der Geschwindigkeit. - Die Position ist abhängig von Geschwindigkeit und Beschleunigung. - Die Geschwindigkeit nur von der Beschleunigung. - Für die Betrachtung benötigt er ein Zeitintervall, hier in Form des Intervalls zwischen zwei Frames, da wir genau von diesem Intervall die ständigen Updates benötigen.

Die Update-Gleichung - 2 unterschiedliche Updates: Positions-Update u. Geschwindigkeits-Update. -PU: -GU:

Der komplette Integrator!

Der komplette Integrator!Teil II

Vielen Dank für eure Aufmerksamkeit!!!