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
                                                     

Counter und Countdowns
Zähler mit Zahlen als Text-Objekte für POV-Ray
und Zähler mit 7-Segment-Display.

           


Countdown
als Text-Objekte für POV-Ray:

Bei dieser Art von Zählern benutzt man die Variable "frame_number" direkt zum Zählen. Hierbei konvertiert man die aktuelle "frame_number" in einen Zeichenketten-Wert (string) für das Text-Objekt von POV-Ray durch
str( Number ,   // (die zu konvertierende Zahl)
        0 ,        // (kein Auffüllen links),
        0 ) // (Keine Ziffern nach dem Dezimalpunkt)
Wegen der unterschiedlichen Breite der Ziffern bei normalen Schriften in truetype-fonts muß man die Zahl in zwei Ziffern aufspalten um ein horizontales Wackeln zu vermeiden.
//-----------------------------------
#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
Szenenbeschreibungen für POV-Ray:
"Running_Counter_10.ini" and
"Running_Counter_10.pov"
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Zähler mit 7-Segment-Display:
Hier kann man ein bereits als Makro vorgefertigtes Objekt verwenden.
Wie dieses 7-Segment-Display erstellt wurde kann man hier sehen:
    7-Segment Display
Beispieldateien zu diesem Makro und die Möglichkeit zum Download
der Include-Datei "Seven_Segment_LCD.inc" findet man hier:     POV-Ray Objekte - Elektronik

Wie man diese Objekt animieren kann:
Die Ziffern der beiden Stellen werden mit der
Variablen "frame_number" wie folgt berechnet:
#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
2-stelliges 7-Segment-Display
Szenenbeschreibungen für POV-Ray:
"Seven_Segment_LCD_run02.ini", "Seven_Segment_LCD_run02.pov"
und "Seven_Segment_LCD.inc"













Seven_Segment_LCD_Display
ein "Seven_Segment_LCD_Display"
das etwas weiter entwickelt ist
kann man auf dieser Seite finden:
Seven_Segment_LCD_Display
top

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