Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
English English English
Italiano Italiano

Zur Download-Seite  Zur Themen-Übersicht Jetzt geht's rund

Schleifen, Sinus, Kosinus und POV-Ray

Dieser Artikel möchte einige Spielereien mit der Sinus- bzw. Kosinus-Funktion demonstrieren. Das hierbei wichtigste über Schleifen soll das folgende Beispiel kurz an einer doppelt ineinander geschachtelten Schleife demonstrieren.
Betrachten wir hier erst einmal eine einfache Schleife, welche kleine Kugeln längs der x-Achse von x = 5 bis x = +5 plaziert:

#declare Ball = sphere{<0,0,0>,0.25
                       texture{pigment{color rgb<1,0.8,0>}
                               finish {ambient 0.45 diffuse 0.55 phong 1}
                              }// end of texture
                      }// end of sphere

#declare X = -5;    // Start-Wert X
#declare EndX = 5;  //   End-Wert X
#declare Step = 0.5;// Schrittweite

#while ( X < EndX + Step)//----------------------- Schleifen-Anfang
   object{ Ball translate < X, 0, 0> }

#declare X = X + Step; // next X-Wert
#end // ------------------------------------------ Schleifen-Ende

Packt man die vorhandene Schleife, in ein eine weitere Schleife, welche die z-Wert von z = -5 bis z = +5 durchläuft, so erhält man eine von Kugeln bedeckte quadratische Fläche:

#declare Z = -5;  // Start-Wert Z
#declare EndZ = 5;  //   End-Wert Z
#declare Step = 0.5;// Schrittweite

#while ( Z < EndZ + Step)//-------------- Schleifen-Anfang Z

   #declare X = -5;   // Start-Wert X
   #declare EndX = 5; //   End-Wert X

   #while ( X < EndX + Step)//------------ Schleifen-Anfang X
     object{ Ball translate < X, 0, Z> }
   #declare X = X + Step; //next X-Wert
   #end // --------------------------------- Schleifen-Ende X

#declare Z = Z + Step; //next Z-Wert
#end // ------------------------------------ Schleifen-Ende Z

Soweit die zum folgenden notwendige Schnellwäsche in Sachen Schleifen!
Jetzt wollen wir mal etwas Bewegung in die Fläche bringen. Dazu benötigen wir die Sinus- bzw. Kosinus Funktion, welche in POVRAY mit sin(A) bzw. cos(A) bezeichnet wird und als Argument A den Winkelwert in Rad benötigt. Wandelt man obige Doppelschleife wie folgt ab
  object{ Ball translate < X, sin(X), Z> }   
bzw. mit halber Schrittweite Step = 0.25
 object{ Ball translate < X, sin(2*X), Z> }
ergeben sich folgende Bilder:


Themen Jetzt geht's rund

© Friedrich A. Lohmüller, 2004
email email: (legacy email redacted)
homepage:www.f-lohmueller.de
Besucher: counter
seit 08. Mai 1999
Danke für Ihren Besuch!