Home
- Animationen Galerie
- POV-Ray Tutorial
3D Animation
Inhaltsübersicht
0. Grundlagen
1. Beispiel
2. Beispiel 2
3. Bilder zu animierte Gif
4. Von Bildern zum Video
5. Grundbegriffe
6. Animationsbefehle
I. Zyklische Animationen
1. Objekt-Rotation
1.2. Planeten im Orbit
1.3. Animierte Uhr
2. Kamera-Rotation
2.1. Kamera Geradeausflug
3. Western-Kutschen
-Problem
3.1. Rollende Räder
4. Zahnradgetriebe
4.1. Rollende Kette
4.2. Fahrradkette
5. Pendelschwingung
5.1. Newtonpendel
5.2: Schaukelstuhl
6. Federpendel
7. Koppelstange
7.1. Pleuelstange
8. Psychedelic + Op-Art
9. Zähler + Countdowns
10. Faltung eines Würfels
II. Nichtlineare Bewegungen
> 1.1 Beschleunigung
+ Bremsen 1
> 1.0 Beschleunigung
+ Bremsen 2
2. Fallen + Hüpfen
3. Beschleunigung nach
physikalischen Formeln
4. Geschwindigkeitssteuerung
mit Spline-Funktionen
III. Animationspfade mit Spline-Kurven
1. Spline-Kurven
2. Geschlossene Splines
3. Animationspfade
|
|
Beschleunigung und Abbremsen (2)
Nichtlineare Bewegungen in Animationen zur realistischen Beschleunigung und Verzögerung mittels elementarer Funktionen in POV-Ray. |
Realistischere Simulation von
Beschleunigung und Verzögerung
bei Start und Ende mit v = 0 und a = 0.
Bei der Approximation durch
f(x)= (0.5-0.5*cos( pi*x)) oder
f(x)= - 2*x3+ 3*x2
haben wir f(0) = 0, f(1) = 1
und f'(0)=f'(1)=0.
Bei einer Bewegung, welche mit v = 0 und a = 0 startet und endet,
sollte man besser eine Funktion verwenden,
welche nicht nur die 1.Ableitung f'(0)=0 (Start) und f'(1)=0 (Ende) hat.
Vielmehr benötigen wir eine Funktion, welche auch eine
2. Ableitung
mit f''(0) = f''(1) = 0 besitzt, wie
f(x) = 6x5 - 15x4 + 10x3 =
f(x) = x⋅x⋅x⋅(10+x⋅(6⋅x-15))
Der Unterschied ist offensichtlich wie nebenstehende Abbildung zeigt.
|
f(X)= 3*X*X - 2*X*X*X [orange] und
f(X)= X*X*X*(10+X*(6*X-15)) [grün]
|
4 nützlliche Makros:
//---------------------------
#macro Smoothy_01 ( X )
X*X*X*(10+X*(6*X-15))
#end
//---------------------------
#macro Smoothy_010 ( X )
#if( X <= 0.5 )
(X*2)*(X*2)*(X*2)
*(10+(X*2)*(6*(X*2)-15))
#else
1-((X*2-1)*(X*2-1)*(X*2-1)
*(10+(X*2-1)*(6*(X*2-1)-15)))
#end
#end
//---------------------------
#macro Smoothy_10 ( X )
1-X*X*X*(10+X*(6*X-15))
#end
//---------------------------
#macro Smoothy_101( X )
#if( X <= 0.5 )
1-((X*2)*(X*2)*(X*2)
*(10+(X*2)*(6*(X*2)-15)))
#else
(X*2-1)*(X*2-1)*(X*2-1)
*(10+(X*2-1)*(6*(X*2-1)-15))
#end
#end
//--------------------------- |
|
macro 'smoothy01( TIME )'
Start smooth, end smooth.
macro 'smoothy10( TIME )'
Start smooth, end smooth.
|
macro 'smoothy010( TIME )'
Start smooth, return smooth,
come back and end smooth.
macro 'smoothy101( TIME )'
Start smooth, return smooth,
come back and end smooth.
|
|
Berechnung einer Polynom-Funktion des 5.Grades:
Wir suchen eine Funktion mit f(0)=0 und f(1) = 1 und
der 1. und 2. Ableitung = 0 bei <0/0> und <1/1>.
Allgemeine Form:
f(x) = a⋅x5 + b⋅x4 + c⋅x3 + d⋅x2 + e⋅x + f
1.Ableitung:
f'(x) = 5⋅a⋅x4 + 4⋅b⋅x3 + 3⋅c⋅x2 + 2⋅d⋅x + e
2.Ableitung:
f''(x) = 20⋅a⋅x3 + 12⋅b⋅x2 + 6⋅c⋅x + 2⋅d
Bedingungen beim Punkt <0/0>:
f(0) = 0, f'(0) = 0, f''(0) = 0;
Daraus ergibt sich: f = 0, e = 0 und d = 0.
Reduzierte allgemeine Form:
f(x) = a⋅x5 + b⋅x4 + c*x3
f'(x) = 5⋅a⋅x4 + 4⋅b⋅x3 + 3⋅c⋅x2
f''(x) = 20⋅a⋅x3 + 12⋅b⋅x2 + 6⋅c⋅x
Bedingungen beim Punkt <1/1>:
f(1) = 1, f'(1) = 0, f''(1) = 0;
f(1) = a + b + c = 1 (I)
f'(1) = 5⋅a + 4⋅b + 3⋅c = 0 (II)
f''(1) = 20⋅a + 12⋅b + 6⋅c = 0 (III)
II : 5a + 4b +3c = 0
-3⋅I: -3a - 3b - 3c = -3
=> 2a + b = -3 (IV)
II : 5a + 4b + 3c = 0
III/2 : 10a + 6b + 3c = 0
=> 5a + 2b = 0 (V)
-2⋅IV : -4a - 2b = 6
V : 5a + 2b = 0
=> a = 6
a in IV : 12 + b = -3
b = -15
a,b in I: 6 - 15 + c = 1
-9 + c = 1
c = 10
Die ergibt die Funktion
f(x) = 6⋅x5 - 15⋅x4 + 10⋅x3
|
|