Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
logo
    Animazione 3D con POV-Ray
        Fondamenti ed esempi per l'animazione 3D.
English English English
Français français
Deutsch Deutsch
Home
- Galeria Animazione 3D
- Tutorial POV-Ray

  Animazione 3D
   Indice del contenuto
  0. Nozioni fondamentali
     1. Esempio di base
     2. Esempio 2
     3. Da Immagini al animated gif
     4. Da Immagini al Video
     5. Termini tecnici di base
     6. Comandi di Animazione
  I. Animazioni ciclici
     1. Oggetti rotanti
     1.2. Pianeti in orbita
     1.3. L'Orologio
     2. Fotocamera rotante
     2.1. Fotocamera in volo dritto
     3. Il Problema di
         Ruota Western
     3.1. Ruote Girante
     4. Ingranaggi
     4.1. Catena di Trasmissione
     4.2. Catena della Bicicletta
     5. Pendolo oscillante
     5.1. Pendolo di Newton
     5.2. Rock il Rocking Chair!
     6. Molla a spirale
     7. Biella di accoppiamento
     7.1. Biella motrice
     8. Psychedelico + Op-Art
     9. Contatori + Countdown
    10. Piegatura di un Cubo
  II. Movimenti non-lineari
     1.0 Accelerare e Frenare 1
  > 1.1 Accelerare e Frenare 2
     2. Cadere e Saltellare
     3. Accelerazione secondo
          le formule de la fisica
     4. Controllo di movimenti
          con funzioni spline
  III. Sentieri di Animazione
      con Spline
     1. Curve Spline
     2. Spline ciuso
     3. Sentieri di Animazione
                                                           

Accelerare e Frenare (2)
Mouvementi non lineari in animazioni per l'accelerazione e per la decelerazione realistica con funzioni di base in POV-Ray.

Simulazione plus realistica di
accelerazione e decelerazione

con inizio e fine con v = 0 e a = 0.


Con una approssimazione con
f(x)= (0.5-0.5*cos( pi*x)) o
f(x)= - 2*x3+ 3*x2
abbiamo f(0) = 0, f(1) = 1
e f'(0) = f'(1) = 0.

Per un movimento con inizio e fine con v = 0 e a = 0, dobbiamo utilisare una funzione, che non ha solamente la derivazione prima
f'(0)=0 (inizio) e f'(1)=0 (fine).
Abbiamo besogno di una funzione con anche la derivazione seconda
f''(0) = f''(1) = 0, come
f(x) = 6x5 - 15x4 + 10x3 =
f(x) = x⋅x⋅x⋅(10+x⋅(6⋅x-15))
La differenza è ovviamente nella illustrazione adiacente.

Smoothing_function
f(X)= 3*X*X - 2*X*X*X [arancio] e
f(X)= X*X*X*(10+X*(6*X-15)) [verde]
4 macro utili:
//---------------------------
#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.


Calculazione di una funzione polinomiale de quinto grado:
Cerchiamo una funzione con f(0)=0 e f(1) = 1 e
la derivazione prima e seconda = 0 a <0/0> e <1/1>.

Forma generale:       f(x) =     a⋅x5 +      b⋅x4 +     c⋅x3 +    d⋅x2 + e⋅x + f
derivazione prima:  f'(x) =  5⋅a⋅x4 +   4⋅b⋅x3 + 3⋅c⋅x2 + 2⋅d⋅x + e
derivazione seconda: f''(x) = 20⋅a⋅x3 + 12⋅b⋅x2 + 6⋅c⋅x + 2⋅d
Condizioni al puntot <0/0>:   f(0) = 0, f'(0) = 0, f''(0) = 0;
Con questa abbiamo: f = 0, e = 0 et d = 0.

Forma generale ridotto:
  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
Condizioni al punto <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

Il resultato e la funczione
  f(x) =  6⋅x5 - 15⋅x4 + 10⋅x3
top

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