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

loop=""   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
                                                           
 

Pendolo di Newton

      Oscillationi in ritmo sinus.

Pendolo di Newton
Il Chassis:
Per gli angoli arrotondati di tubo possiamo usare il marco "Segment_of_Torus(...)" del mio include file "shapes3.inc".
Le parti del chassi sono realizato con un macro:
//------------------
#ifndef ( Shapes_Lo_Inc_Temp )
#include "shapes_lo.inc"
#end

Newtons_Cradle_Frame
Il chassis di un Pendolo di 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 singolo pendulo oscillante:
I pendoli sono dichiarato come ogetti con 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 singolo pendulo a sfera
del pendulo di Newton

Chassis e penduli oszillante in ritmo sinusoidale:
// ----------- dimensioni:
#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
Animazione Pendulo di Newton
Descrizione della scena per POV-Ray:
"Newtons_Cradle_3.ini" e
"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 -----------------------------------
//------------------------------------------------------------
// tutto insieme: ---------------------------------------------
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_Radius_min,0> } // end balls
 //---------------------------------------------------------
} // ----------------------------- end of union
In questa animazione ci sono 3 palle in moto.
È vostra parte di scoprire come si può mettere 1, 2 o 4 palle in questo gioco! Buon divertimento!
 
Animazioni più grade del Pendulo di Newton
si può trovare qui: Gallery of 3D Animations - Oszillations
.

top

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