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)) où
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.
|
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
//--------------------------- |
|
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.
|
|
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
|
|