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.
                                                           

Le Pendule de Newton (Newton's Cradle)

Au sujet des animations sinusoïdales.
       

Le Pendule de Newton
Le bâti de tubes:
Pour les angles de tubes arrondis nous pouvons utilliser le marco "Segment_of_Torus(...)" de mon fichier include "shapes3.inc"
Les parties du châssis ici sont réalisées par un macro :
//------------------
#ifndef ( Shapes_Lo_Inc_Temp )
#include "shapes_lo.inc"
#end

Newtons_Cradle_Frame
Le châssis dela pendule de Newton
//---------------------------------------------------------------
#macro Newtons_Cradle_Frame ( R_min, // minor radius
                              R_maj, // major radius
                              Frame_H, // height in y
                              Frame_W, // width in x
                              Frame_L //  length in z
                            ) //-------------------------
#if (R_maj <= R_min) #local R_maj= R_min+D; #end
//-----------------------------------------------------
#local F_H = Frame_H -2*R_min ; // inner height in y
#local F_W = (Frame_W -2*R_min)/2 ; // inner width in x
#local F_L = (Frame_L -2*R_min)/2 ; // inner length in z


#local F_Quart = // -----------------------------
object{ Segment_of_Torus( R_maj,R_min, 90) } //
// ----------------------------------------------
union{
// tubes in x
 cylinder{<-(F_W-R_maj),0,0>,<(F_W-R_maj),0,0>,R_min translate<0,0,-F_L>}
 cylinder{<-(F_W-R_maj),0,0>,<(F_W-R_maj),0,0>,R_min translate<0,0, F_L>}
// tubes in z
 cylinder{<0,0,-(F_L-R_maj)>,<0,0,(F_L-R_maj)>,R_min translate< F_W,F_H,0>}
 cylinder{<0,0,-(F_L-R_maj)>,<0,0,(F_L-R_maj)>,R_min translate<-F_W,F_H,0>}
// tubes vertical
 cylinder{<0,R_maj,0>,<0,F_H-R_maj,0>,R_min translate< F_W,0, F_L>}
 cylinder{<0,R_maj,0>,<0,F_H-R_maj,0>,R_min translate< F_W,0,-F_L>}
 cylinder{<0,R_maj,0>,<0,F_H-R_maj,0>,R_min translate<-F_W,0, F_L>}
 cylinder{<0,R_maj,0>,<0,F_H-R_maj,0>,R_min translate<-F_W,0,-F_L>}

// round tube corners:
// low
 object{ F_Quart rotate<-90, 0, 0> translate< F_W-R_maj,R_maj,-F_L>}
 object{ F_Quart rotate<-90, 0, 0> translate< F_W-R_maj,R_maj, F_L>}
 object{ F_Quart rotate<-90,180,0> translate<-F_W+R_maj,R_maj,-F_L>}
 object{ F_Quart rotate<-90,180,0> translate<-F_W+R_maj,R_maj, F_L>}
// high
 object{ F_Quart rotate< 90, 90,0> translate< F_W,F_H-1*R_maj,-F_L+R_maj>}
 object{ F_Quart rotate< 90,-90,0> translate< F_W,F_H-1*R_maj, F_L-R_maj>}
 object{ F_Quart rotate< 90, 90,0> translate<-F_W,F_H-1*R_maj,-F_L+R_maj>}
 object{ F_Quart rotate< 90,-90,0> translate<-F_W,F_H-1*R_maj, F_L-R_maj>}
translate<0,R_min,0>
} // end of union ---------------------------------------------------------
#end // ------------------------------------------------------ end of macro


Un seule pendule:
Les pendules sont déclarées comme des objets par un macro:
// -------------------------------------
#macro Newtons_Cradle_Ball( Ball_R, // radius sphere
                            Wire_R, // radius wire
                            Ball_H, // depth sphere
                            Frame_X // Frame_width
                          ) //-------------------------
union{
 sphere{<0,0,0>, Ball_R translate<0,-Ball_H-Ball_R,0>}
 cylinder{<-Frame_X/2,0,0>,<-Ball_R/5,-Ball_H,0>,Wire_R}
 cylinder{< Frame_X/2,0,0>,< Ball_R/5,-Ball_H,0>,Wire_R}
 sphere{<0,0,0>,Ball_R/5 translate<0,-Ball_H,0>}
} // end of union --------------------------------
#end // ----------------------------- end of macro 

Newton's Cradle Ball
Un seule boule de pendule
de la pendule de Newton

Châssis et pendules en rythme de sinus:
// ----------- dimensions:
#declare Frame_R_min  = 0.03;
#declare Frame_R_maj  = 0.15;
#declare Frame_Height = 1.40;
#declare Frame_Width  = 1.20;
#declare Frame_Length = 1.90;

#declare Ball_R = 0.15;
#declare Ball_H = 1.00;
#declare Wire_R = 0.015;
Newton's Cradle Animation
Animation Newton's Cradle
Scene description for POV-Ray:
"Newtons_Cradle_3.ini" and
"Newtons_Cradle_3.pov"
//------------------------------ Animations Settings:
// clock 0~1 set by animation ini file!
#declare Time = 0.00+clock;
#declare Amp = 50; //  Amplitude

#declare Ball_1_Rotate = Amp*sin(2*pi*Time)* (Time<=0.5) ;
#declare Ball_2_Rotate = Amp*sin(2*pi*Time)* (Time<=0.5) ;
#declare Ball_3_Rotate = Amp*sin(2*pi*Time)*1;// (Time>0.5) ;
#declare Ball_4_Rotate = Amp*sin(2*pi*Time)* (Time>0.5) ;
#declare Ball_5_Rotate = Amp*sin(2*pi*Time)* (Time>0.5) ;


//------------------------------------------------------------
#declare Ball = // ----------------------- single ball element
 object{ Newtons_Cradle_Ball( Ball_R, // Ball_R,
                              Wire_R, // Filament_R,
                              Ball_H, // Ball_H,
                              Frame_Width-2*Frame_R_min //in x
                            ) //-------------------------
         texture{ Polished_Chrome }
       }  // end of object -----------------------------------
//------------------------------------------------------------
// all together: ---------------------------------------------
union{
 object{Newtons_Cradle_Frame ( Frame_R_min,  // R_minor,
                               Frame_R_maj,  // R_major,
                               Frame_Height, // height in y
                               Frame_Width,  //  width in x
                               Frame_Length  // length in z
                             ) //------------------------------
         texture{ Polished_Chrome }
       }  // end of object -----------------------------------
 union{// all balls together and upward
  object{ Ball rotate<Ball_1_Rotate,0,0> translate<0,0,-4*Ball_R>}
  object{ Ball rotate<Ball_2_Rotate,0,0> translate<0,0,-2*Ball_R>}
  object{ Ball rotate<Ball_3_Rotate,0,0> translate<0,0, 0*Ball_R>}
  object{ Ball rotate<Ball_4_Rotate,0,0> translate<0,0, 2*Ball_R>}
  object{ Ball rotate<Ball_5_Rotate,0,0> translate<0,0, 4*Ball_R>}
 translate<0,Frame_Height-Frame_R_min,0> } // end balls
 //---------------------------------------------------------
} // ----------------------------- end of union
Dans cet'animation ils sont en mouvement 3 boules.
Maintenant c'est votre tour à découvrir comment on n'y peut mettere en action 1, 2 ou 4 boules ! Amusez-vous bien !
 
Des animations plus grand della Pendule de Newton
on peut trouver dans mon Galerie des Animations 3D - Oscillations
.

top

© Friedrich A. Lohmüller, 2013
www.f-lohmueller.de