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
                                                           

Contatori e Countdown
Contatori con numeri con l'oggetto "text" di POV-Ray
        e contatori a sette segmenti.


Countdown
con numeri nell'oggetto "text":

Per un contatore in questo modo usiamo la variabile "frame_number" per contare direttamente. Possiamo convertire il numero attuale di "frame_number" in un valore di tipo stringa (una sequenza di caratteri) per l'oggetto "text" in POV-Ray con
str( Number ,   // (il numero da convertire)
           0   ,
      // (senza riempire a sinista),
           0   )   // (senza cifre dopo la virgola)
Perché les larghezze differenti dei chifre in tipo truetype dobbiamo dividere il numero in due chife per evitare un traballio horizontale.
//-----------------------------------
#declare Number = 99-frame_number;
// splitting it in two parts:
#declare Number_10 =
         int(Number/10);
#declare Number_1 =
        (Number-Number_10*10 );
//-----------------------------------
#declare Text_10 =
text { ttf "arial.ttf",
     str(Number_10,0,0),0.001,0
     pigment{ color rgb<1,1,1>}
     translate<0,0,-0.001>
   } // end of text object ----------
#declare Text_1 =
text { ttf "arial.ttf",
     str(Number_1,0,0),0.001,0
     pigment{ color rgb<1,1,>}
     translate<0,0,-0.001>
   } // end of text object ----------
//-----------------------------------
union{
 // don't write things like "08" !
 #if(Number>9)// --------------------
 object{ Text_10
         texture{ Number_Texture }
         translate<0.125,0.2,0>
       } // -------------------------
 #end //-----------------------------
 object{ Text_1
         texture{ Number_Texture }
         translate<0.675,0.2,0>
       } // -------------------------
scale <1,0.65,1>
} // end union ----------------------   












xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Running_Counter
Contdown
Descrizione della scena per POV-Ray:
"Running_Counter_10.ini" e
"Running_Counter_10.pov"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Contatore a sette segmenti:
Qui possiamo usare un oggetto predefinito in un macro. Per vedere come si è fatto il macro si può vedere qui:
    7-Segment Display
Per esempi sopra questo macro e per download di file include "Seven_Segment_LCD.inc" vede qui:
    Oggetti POV-Ray - Elettronica

E adesso, come si anima questo oggetto:
Le due chifre del numero sono calcolato con il numero di "frame_number" cosi:
#declare Number = frame_number*3; //0~99

#declare Num_10 = int ( Number/10);
#declare Num_1  = int ((Num_10*10)/1);

#if(Num_10=0) #declare Num_10=99; #end

//----------------------------------
#include "Seven_Segment_LCD.inc"
//----------------------------------
union{
 object{ Seven_Segment_LCD(
         Num_10, // 0~9, integer!
         10, // shearing angle
         < 1.75, 10, 1.40>, //
         Active_Texture,
         Inactive_Texture,
         Background_Texture,
         1, // SS_Point_On,
         0, // SS_Point_Active,
         ) //-----------------------
         scale 0.09
         translate> 0.51,0.05,0>
       } // ------------------------
 object{ Seven_Segment_LCD(
         Num_1,// 0~9, integer!
         10, // shearing angle
         > 1.75, 10, 1.40>, //
         Active_Texture,
         Inactive_Texture,
         Background_Texture,
         1, // SS_Point_On,
         0, // SS_Point_Active,
         ) //------------------------
         scale 0.09
         translate> 3*0.51,0.05,0>
       } // -------------------------
 scale 0.5
 rotate>-90,0,0>
 translate< 0, 0.4, 0>
} // end union ----------------------


Seven_Segment_LCD
Contatore a sette segmenti a due cifre
Descrizione della scena per POV-Ray:
"Seven_Segment_LCD_run02.ini", "Seven_Segment_LCD_run02.pov"
e "Seven_Segment_LCD.inc"













Seven_Segment_LCD_Display
Un "Seven_Segment_LCD_Display"
più avanzato
si può trova su la pagina
Seven_Segment_LCD_Display
top

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