Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION

Ähnliche Präsentationen


Präsentation zum Thema: "THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION"—  Präsentation transkript:

1 THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION

2 THE MATHEMATICS OF PARTICLES

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

4 ----------------------------------
Vektoren

5 - 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.

6 - „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.

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

8 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; };

9 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); };

10 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); };

11 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:

12 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.

13 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!

14 ------------------------------
Calculus

15 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.

16 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:

17 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:

18 „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:

19 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.

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

21 THE LAWS OF MOTION

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

23 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.

24 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.“

25 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; };

26 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.

27 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.

28 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; };

29 „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.

30 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.

31 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 =

32 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.

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

34 Der komplette Integrator!

35 Der komplette Integrator!Teil II

36 Vielen Dank für eure Aufmerksamkeit!!!


Herunterladen ppt "THE MATHEMATICS OF PARTICLES & THE LAWS OF MOTION"

Ähnliche Präsentationen


Google-Anzeigen