Descriptions et Exemples pour le raytracer de POV-Ray par Friedrich A. Lohmüller,

logo
    Animation 3D avec POV-Ray
        Quelques bases et exemples sur les animations.
English English English
Italiano Italiano
Deutsch Deutsch
Page d'Accueil
- Galerie d'Animations 3D
- Tutoriel POV-Ray

  Animation 3D
   Table des matières
  0. Bases.
     1. Exemple du base.
     2. Example 2.
     3. D'Images à gif animé.
     4. D'Images à Vidéo.
     5. Connaissance de base.
     6. Commandes d'animation.
  I. Animations cycliques.
     1. Objets tournants.
     1.2. Planètes en orbite.
     1.3. Une horloge
     2. Caméra tournante.
     2.1. Caméra deplacée linéaire
     3. Le problème
         de la roue.
     3.1. Roues roulantes.
     4. Engrenages.
     4.1. Chaîne à rouleaux.
     4.2. Chaîne de bicyclette.
     5. Balancement.
     5.1. Pendule de Newton
     5.2. Rock le rocking chair !
     6. Oscillation.
     7. Bielle d'accouplement
     7.1. Bielle et manivelle.
     8. Psychédélique + Op-Art.
     9. Compteurs
        + Compte à rebours
    10. La pliage d'un cube.
  II. Mouvements non-linéaires
     1.0 Accélérer et ralentir 1.
  > 1.1 Accélérer et ralentir 2.
     2. Chuter et bondir.
     3. Accélération selon
          formules physiques.
     4. Mouvements
          avec fonctions spline.
  III. Chemins pour
      des animations avec
      des courbes spline
     1. Courbes spline.
     2. Spline fermé.
     3. Animation Paths.
                                                           

Accélérer et ralentir (2).
Mouvements non-linéaires en animations pour accélérations et décélérations réalistes avec des fonctions de base en POV-Ray.

La simulation plus realiste de
accélération et décélération
avec début et fin à v = 0 et a = 0.


Avec une approximation par
f(x)= (0.5-0.5*cos( pi*x))
f(x)= - 2*x3+ 3*x2
nous avons f(0) = 0, f(1) = 1
et f'(0)=f'(1)=0.

Pour un movement avec début et fin avec v = 0 et a = 0, nous devons utiliser une fonction, que n'a pas seulement la dérivation première
f'(0)=0 (début) et f'(1)=0 (fin).
Nous avons besoin d'une fonction avec aussi la dérivation seconde
f''(0) = f''(1) = 0, comme
f(x) = 6x5 - 15x4 + 10x3 =
f(x) = x⋅x⋅x⋅(10+x⋅(6⋅x-15))
La difference est évident ci-contre.

Smoothing_function
f(X)= 3*X*X - 2*X*X*X [orange] et
f(X)= X*X*X*(10+X*(6*X-15)) [vert]
4 macro très utiles : 
//---------------------------
#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.


Calculation d'une fonction polynomiale de cinquième degré :
Nous cherchons une fonction avec f(0)=0 et f(1) = 1 et
la dérivation pemière et seconde = 0 à <0/0> et <1/1>.

Forme generale :       f(x) =     a⋅x5 +      b⋅x4 +     c⋅x3 +    d⋅x2 + e⋅x + f
dérivation première :  f'(x) =  5⋅a⋅x4 +   4⋅b⋅x3 + 3⋅c⋅x2 + 2⋅d⋅x + e
dérivation seconde : f''(x) = 20⋅a⋅x3 + 12⋅b⋅x2 + 6⋅c⋅x + 2⋅d
Conditions au point <0/0>:   f(0) = 0, f'(0) = 0, f''(0) = 0;
Avec cela nous avons : f = 0, e = 0 et d = 0.

Forme generale réduit :
  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
Conditions au point <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 dans IV :  12 + b = -3
                        b = -15

a,b dans I:  6 - 15 + c = 1
                     -9 + c = 1
                        c = 10

Le résultat et la fonction
  f(x) =  6⋅x5 - 15⋅x4 + 10⋅x3
top

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