Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
logo
    3D Animationen mit POV-Ray
        Grundlagen und Beispiele zu Animationen.
English English English
Italiano Italiano
Français français
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.

Smoothing_function
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
//---------------------------

speed up and slow down
macro 'smoothy01( TIME )'
Start smooth, end smooth.
 

speed up and slow down
macro 'smoothy10( TIME )'
Start smooth, end smooth.

speed up and slow down
macro 'smoothy010( TIME )'
Start smooth, return smooth,
come back and end smooth.

speed up and slow down
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
top

© Friedrich A. Lohmüller, 2012
http://www.f-lohmueller.de