Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
logo
    3D Animationen mit POV-Ray
        Grundlagen und Beispiele zu Animationen.
English English English
Italiano Italiano
Français français
Home
- Animationen Galerie
- POV-Ray Tutorial

  3D Animation
  Inhaltsübersicht
  0. Grundlagen
     1. Beispiel
     2. Beispiel 2
     3. Bilder zu animierte Gif
     4. Von Bildern zum Video
     5. Grundbegriffe
     6. Animationsbefehle
  I. Zyklische Animationen
     1. Objekt-Rotation
     1.2. Planeten im Orbit
     1.3. Animierte Uhr
     2. Kamera-Rotation
     2.1. Kamera Geradeausflug
     3. Western-Kutschen
        -Problem
     3.1. Rollende Räder
     4. Zahnradgetriebe
  > 4.1. Rollende Kette
     4.2. Fahrradkette
     5. Pendelschwingung
     5.1. Newtonpendel
     5.2: Schaukelstuhl
     6. Federpendel
     7. Koppelstange
     7.1. Pleuelstange
     8. Psychedelic + Op-Art
     9. Zähler + Countdowns
    10. Faltung eines Würfels
  II. Nichtlineare Bewegungen
     1.0 Beschleunigung
          +Bremsen 1
     1.1 Beschleunigung
          + Bremsen 2
     2. Fallen + Hüpfen
     3. Beschleunigung nach
          physikalischen Formeln
     4. Geschwindigkeitssteuerung
          mit Spline-Funktionen
  III. Animationspfade
      mit Spline-Kurven
     1. Spline-Kurven
     2. Geschlossene Splines
     3. Animationspfade
                                                     

Eine abrollende Kette  
Animation einer Rollenkette    
Wie man eine rollende Kette, wie etwa eine Fahrrad- oder Motorradkette,
einen Keilriemen, eine Gleiskette oder ein Förderband animiert.    

Wie animiert man eine Rollenkette?
Zunächst sollte man die Geometrie zweier Kreise mit ihren externen Tangenten verstehen.
Betreffs genaueren Informationen siehe hier:
    Externe Tangenten zweier Kreise

Bei gegebenen Radien r1 > r2 und der Achsentfernung d
mit ri = r2-r1 erhalten wir für den Kettenring:
Die Länge der linearen Teile:
2·t = 2·sqrt( d2 - ri2).
Der Winkel der Kette:     α = asin(ri/d).
Das Segment des Kreises 1:  l1 = 2π·r1 ·(180+2·α)/360.
Das Segment des Kreises 2:  l2 = 2π·r2 ·(180-2·α)/360.


Zur äquidistanten Platzierung der Kettenglieder auf auf der Umfangslinie der Kette müssen wir die Länge der kompletten Kette durch die Anzahl der Kettenglieder dividieren (Bei Fahrradketten gibt es 2 verschiedene Arten von Gliedern, daher muß hier eine gerade Anzahl verwendet werden!).

Zur Animation einer rollenden Kette müssen wir die Kettenglieder auf 4 unterschiedlichen Teilen des Umfangs auf 4 verschiedene Arten platzieren, abhängig von der aktuellen Position des Kettengliedes! Dies können wir mittels der bedingten Anweisung mit '#if' erreichen:

// -------------- 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
Die Geometrie zweier Kreise mit externen Tangenten!
Roller_Chain
Die Positionen der Kettenglieder einer Rollenkette.


roller chain links ani
Animierte Positionen für die Glieder einer Rollenkette!
Szenenbeschreibung
für POV-Ray:
    "Roller_Chain_1.ini" und
"Roller_Chain_1.pov"
Roller_Chain
Eine andere animierte Rollenkette

Weiter mit zwei verschiedenen Arten von Kettengliedern hier:
    Fahrradkette.
Betreffs Animationen von rollenden Fahrradketten siehe hier:
    3D-Animations - Engineering.
top

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