Descriptions and Examples for the POV-Ray Raytracer by Friedrich A. Lohmüller
logo
    3D Animations with POV-Ray
        Some basics and examples on animations.
Italiano Italiano
Français français
Deutsch Deutsch
Home
- 3D Animations Gallery
- POV-Ray Tutorial

  3D Animation Tutorial
   Index of Content
  0. Basic Knowledge
     1. Basic Example
     2. Example 2
     3. Images to Animated Gif
     4. From Images to Video
     5. Basic Terms
     6. Animation Commands  
  I. Cyclic Animations
     1. Rotating Objects
     1.2. Planets in Orbit
     1.3. Clock Animation
     2. Rotating Camera
     2.1. Straight Moving Camera
     3. Western Wheel
         Problem
     3.1. Rolling Wheels
     4. Gears
     4.1. Roller Chain
     4.2. Bike Chain
     5. Swinging Pendulum
     5.1. Newton's Cradle
     5.2: Rock the Rocker
     6. Spiral Pendulum
     7. Coupling Rods
     7.1. Connecting Rods
     8. Psychedelic + Op-Art
     9. Counters + Countdowns
    10. Folding of a Cube
  II. Non-linear Movements
     1.0 Speed Up/Slow Down 1
     1.1 Speed Up/Slow Down 2
  > 2. Fall + Bounce
     3. Acceleration by
          physical Formulas
     4. Speed Controll by
          Spline Functions
  III. Animation Paths
      with Spline Curves
     1. Spline Curves
     2. Closed Splines
     3. Animation Paths
                                                       

Fall and Bounce
Realistic non-linear movements with useful basic functions.

Realistic Falling and Bouncing
Two macros for simulating falling (slow start, abrupt end) and bouncing (abrupt reflecting):

//---------------------------------
#macro  Fall_10( X )
  (  sin(pi*(1/2*X + 1/2)) )
#end
//---------------------------------
#macro  Bounce_101( X )
 #if(X0<1/2) (sin(pi*( X + 1/2)))
 #else       (sin(pi*(1-X + 1/2)))
 #end
#end //----------------------------
falling
macro 'Fall_01( TIME )
speed up and slow down
macro 'Bounce_01( TIME )

bounce
Bounce realistic
bounce
Bounce without acceleration
Bounce with realistic acceleration
//---------------------------------
#macro  Bounce_101( X )
 #if(X<1/2) (sin(pi*( X + 1/2)))
 #else      (sin(pi*(1-X + 1/2)))
 #end
#end //----------------------------
#declare Time = clock +0.00  ;
//---------------------------------
sphere{ <0,0,0>,0.15
  texture{
    pigment{ color rgb<0.3,0.7,0>}
    finish{ phong 1 }
    }
  translate
  <0.25, Bounce_101(Time)*(1-0.15)+0.15,0>
} // end sphere
Bounce without acceleration
//---------------------------------
#declare Time = clock +0.00  ;
//---------------------------------
sphere{ <0,0,0>,0.15
  texture{
    pigment{ color rgb<0.3,0.7,0>}
    finish{ phong 1 }
    }
#if(Time<0.5)
 translate<0.25,(1-Time*2)  *(1-0.15)+0.15,0>
#else
 translate<0.25,(Time-0.5)*2*(1-0.15)+0.15,0>
#end
} // end sphere


top

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