lehrkraefte:blc:math:povray:lektion8og

Die heutige Lektion steht und dem Thema Galaxien, oder etwas mathematischer die archimedische Spirale und selbstähnliche Figuren.

Spielen Sie mit den Farben und den Formen.

Rendern Sie folgenden Code und studieren Sie diesen. Stellen Sie danach Fragen, wenn Sie etwas nicht verstehen.

Galaxie-gruen.pov
// Kamera
camera { 
  sky <0,0,1>           
  right <-4/3,0,0>      
  location <40,65,15>   
  look_at <0, 0, 0>    
  angle 70            
}
 
// Lichtquellen
light_source { 
  <30,6,5>              // Position des Lichts
  color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1)
}
 
light_source { 
  <40,50,5>              // Position des Lichts
  color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1)
}
 
light_source { 
  <0,0,5>              // Position des Lichts
  color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1)
}
 
plane {z,0
  pigment  {granite scale 10}
  normal { bozo }
  finish { reflection 0.9}
}
 
 
 
//Hier entsteht eine Galaxie
#declare Galaxie = union {
 
 #declare da=0.2;  
 #declare alfa = da; 
 
 #while (alfa<20)      
   sphere { <0,0,0>,1       // Einfaches Grundobjekt, Kugel
   translate <0,alfa,0>
   rotate alfa*180/pi*z 
   pigment { color rgb y }  // gruen
   scale 0.01*alfa*<1,1,1>  //
  }
  #declare alfa=alfa+da;
 #end  
}
 
 
// Hier entsteht das Universum                    
#declare dphi=0.4;                
#declare phi=dphi;
 
#while (phi<20)      
   object { Galaxie
        translate <0,phi,0>
        rotate phi*180/pi*z
        scale 0.1*phi*<1,1,1>
    }
    #declare phi=phi+dphi;
 #end

Ändern Sie den obigen Code so ab, dass entweder

  1. die Galaxien abwechslungsweise rot, grün und blau sind oder
  2. die Objekte in einer Galaxie rot, grün und blau sind.

z.B. so oder so

Dazu können Sie folgenden Code an den richtigen Stellen einfügen.

Farbauswahl.pov
// 1. Teil: Deklarationsteil, hier werden die noetingen
// Variablen definiert und initialisiert
#declare Farben = array[3]; // Erstelle ein Feld mit drei Eintraegen fuer Farben
#declare Farben[0] = <1,0,0>; // Erster Eintag ist rot     
#declare Farben[1] = <0,1,0>; // Zeiter Eintrag ist gruen    
#declare Farben[2] = <0,0,1>; // Dreiter Eintrag ist blau               
 
#declare i=0; // Laufvariable definieren und mit Null initialisieren
 
// 2. Teil: Farbauswahl
 pigment { color rgb Farben[i] }  // mit dem Array Eintrag Farben[i] wird die entsprechende 
                                  // Farbe zugewiesen. i hat die Werte 0, 1 oder 2 
// 3. Teil: Laufvariable i
 #declare i=i+1;                  // Laufvariable um eins erhoehen
 #if (i>2)                        // nach dem dritten Durchlauf
     #declare i=0;                // auf Null setzen
 #end

Ändern Sie das Basisobjekt in abwechslungsweise Kugel, Würfel und Kegel. Einmal in

  1. Galaxie für Galaxie
  2. Objekt für Objekt in einer Galaxie.

Erstelle ein eigenes Basisobjekt. Wenn Ihnen nichts einfällt, dann schreiben Sie ihren Namen mit Basiselementen und erstelle eine union mit dem Namen myObject.

myObject.pov
   #declare myObject = union {
    // M als Grossbuchstabe
    box { <0,0,0>, <1,0.2,2>
    }
    box { <0,0,0>, <1,0.2,2>
        translate <0,1,0>
    }
    box { <0,0,0>, <1,0.2,sqrt(1.25)>
        rotate atan(1/2)*180/pi*x
        translate <0,0.5,1>
    }
    box { <0,0,0>, <1,0.2,sqrt(1.25)>
        rotate -atan(1/2)*180/pi*x
        translate <0,0.5,1>
    }
    ...
   }

Nun müssen Sie nur die Kugel durch ihr Basiselement ersetzen.

myObject_vs_sphere.pov
#while (alfa<20)      
   //sphere { <0,0,0>,1       // Einfaches Grundobjekt, Kugel
   object { myObject          // mein eigenes Grundobjekt
   ...

Erstelle eine Animation, indem mit der Kamera über die Galaxien hinweg geflogen wird.

  • lehrkraefte/blc/math/povray/lektion8og.txt
  • Last modified: 2017/06/20 09:11
  • by Marcel Metzler