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.
                                                           

Compteurs et Countdown
(compte à rebours)
Compteurs avec nombres dans l'objet "text"
et compteurs avec un afficheur numérique
à cristaux liquides en sept segments.


Compte à rebours
avec nombres dans l'objet "text" :

Pour ce genre de compteurs nous utilisons la variable "frame_number" per compter directement. Nous pouvons convertir le nombre de "frame_number" actuel dans un valeure de chaîne de caractères (en anglais : string) pour l'objet "text" de POV-Ray par
str( Number ,   // (le nombre à convertir)
          0   ,        // (ne remplir pas a gauche!),
          0   )     // (sans des chiffres après la virgule)
à cause des largeurs très différents des nombres en caractères truetype nous devons diviser les nombres en deux chiffres pour éviter le vacillement des chiffres en direction 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
Compte à rebours - Contdown
Les fichiers de la scène pour POV-Ray :
"Running_Counter_10.ini" et
"Running_Counter_10.pov"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Un afficheur numérique
en sept segments
avec deux chiffres :

Nous pouvon faire l'animation avec un objet défini dans une macro.
Comment il faut faire cela on peut voir dans tous les détails ici :
    Afficheur en sept segments
Pour télécharger de cette macro (fichier include "Seven_Segment_LCD.inc" ) et pour des exemples on peut voir ici :
    Objets POV-Ray - Électronique

Et maintenant l'animation du objet :
Les nombres pour le deux chiffres sont calculés
avec la variable "frame_number" de la manière suivante :
#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
Un afficheur numérique
à cristaux liquides
en sept segments
avec deux chiffres

Les fichiers de la scène
pour POV-Ray :
"Seven_Segment_LCD_run02.ini", "Seven_Segment_LCD_run02.pov"
et "Seven_Segment_LCD.inc"













Seven_Segment_LCD_Display
Un "Seven_Segment_LCD_Display"
plus avancé
on peuit trouver sur la page
Seven_Segment_LCD_Display
top

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