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.
                                                           

Chaîne à rouleaux.

Comment faire une animation d'une chaîne à rouleaux pour bicyclettes, courroies, chenilles et des autre machines.    

Comment faire rouler une chaîne à rouleaux ?
Premièrement nous devons comprendre la géométrie aux deux cercles avec les tangentes externes. Pour plus des détails voir ici :
    Tangentes externes aux deux cercles.

Avec des rayons donée r1 > r2 et la distance des axes d
avec ri = r2-r1 nous avons pour la ceinture de la chaîne:
La longueur des partes lineares:
2·t = 2·sqrt( d2 - ri2).
L'angle de la chaîne:     α = asin(ri/d).
Le segment de cercle 1:  l1 = 2π·r1 ·(180+2·α)/360.
Le segment de cercle 2:  l2 = 2π·r2 ·(180-2·α)/360.


Pour un placement équidistant des maillons de la chaîne sur la ligne de la ceinture nous devons divider la longueur totale par le nombre des maillons (pour des chaînes des vélos nous avons deux types differentes de maillons, de là nous avons besoin d'un nombre pair de maillons pour cettes chaînes !).

Pour une animation d'une chaîne roulante nous devons mouvoir le maillons a 4 partes differentes de la ceinture avec 4 méthodes differentes aux positions actuelles! Nous pouvons faire cela par utiliser le commande conditionnel: '#if' .

// -------------- dimensions -----------
#local R1 = 0.15;  // big wheel radius
#local R2 = 0.075; // small wheel radius
#local Dist = 0.30;// axis distance
#local Link_N = 30;// number of links
// -------------- calculations ---------
#local Ri = R1-R2;
#local C_Angle = degrees(asin(Ri/Dist));
// chain linear length
#local LLen=sqrt(pow(Dist,2)-pow(Ri,2));
// segment angle and length
#local Ang1 = 180+2*C_Angle;
#local Ang2 = 180-2*C_Angle;
#local Len1 = Ang1/360*2*pi*R1;
#local Len2 = Ang2/360*2*pi*R2;
// total length
#local C_Len = 2*LLen+Len1+Len2;
#local Link_L  = C_Len / Link_N;
#declare Link =        // the chain link
sphere{<0,0,0>,0.0075
       texture{Chrome_Metal}}
//--------------------------------------
#local Ani=clock*Link_Len;// animation!
union{ //-------------------------------
#local Nr = 0; // start loop
#while (Nr < Link_N)
 #local Pos = mod(Nr*Link_L+Ani,C_Len);
 //-------------------------------------
 #if(Pos< Len1 ) // front down
  #local Rot1 = Pos/Len1*Ang1;
  object{Link translate<0,R1,0>
         rotate<0,0,-Rot1 +C_Angle>}
 #end //--------------------------------
 #if((Pos>Len1) & (Pos<=Len1+LLen))
  #local LPos = Pos-Len1; // base side
  object{Link translate<-LPos,-R1,0>
            rotate<0,0,-C_Angle>}
 #end //--------------------------------
 #if((Pos>Len1+LLen )       // back up
      & (Pos<= Len1+LLen+Len2))
  #local Rot2 =
      (Pos-Len1-LLen)/Len2*Ang2;
  object{Link translate<0,R2,0>
          rotate<0,0,-Rot2-C_Angle-180>
              translate<-Dist,0,0>}
 #end //--------------------------------
 #if((Pos>Len1+LLen+Len2) // up forward
      & (Pos <= Len1+LLen+Len2+LLen))
  #local LPos = Pos-(Len1+LLen+Len2);
  object{Link translate<LPos,R2,0>
              rotate<0,0,C_Angle>
              translate<-Dist,0,0>}
 #end //--------------------------------
#local Nr = Nr + 1;  // next Nr
#end // --------------- end of loop
} // end of union ----------------------

externel tangents
La géométrie de deux cercles avec les tangentes externes !
Roller_Chain
Les positions pour les maillons d'une chaîne à rouleaux.


roller chain links ani
Une animation des positions pour les maillons d'une chaîne à rouleaux !
Scene description
for POV-Ray:
"Roller_Chain_1.ini" and
"Roller_Chain_1.pov"
Roller_Chain
Une autre chaîne à rouleaux en animation.

Suite avec deux types de maillon ici : Chaîne de bicyclette.
Pour des animations avec des chaînes de bicyclette roulantes voir ici :
    3D-Animations - Engineering.
top

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