==== Aufgabe 0 ====
Die heutige Lektion steht und dem Thema Galaxien, oder etwas mathematischer die archimedische Spirale und selbstähnliche Figuren.
{{:lehrkraefte:blc:math:povray:galaxie.jpg?400|}}
Spielen Sie mit den Farben und den Formen.
==== Aufgabe 1 ====
Rendern Sie folgenden Code und studieren Sie diesen. Stellen Sie danach Fragen, wenn Sie etwas nicht verstehen.
// 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
==== Aufgabe 2 ====
Ändern Sie den obigen Code so ab, dass entweder
- die Galaxien abwechslungsweise rot, grün und blau sind oder
- die Objekte in einer Galaxie rot, grün und blau sind.
z.B. so {{:lehrkraefte:blc:math:povray:juni16_galaxy_-_rgb_-_1.png?400|}} oder so {{:lehrkraefte:blc:math:povray:juni16_galaxy_-_rgb_-_2.png?400|}}
Dazu können Sie folgenden Code an den richtigen Stellen einfügen.
// 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
==== Aufgabe 3 ====
Ändern Sie das Basisobjekt in abwechslungsweise Kugel, Würfel und Kegel. Einmal in
- Galaxie für Galaxie
- Objekt für Objekt in einer Galaxie.
==== Aufgabe 4 ====
Erstelle ein eigenes Basisobjekt. Wenn Ihnen nichts einfällt, dann schreiben Sie ihren Namen mit Basiselementen und erstelle eine //union// mit dem Namen //myObject//.
#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.
#while (alfa<20)
//sphere { <0,0,0>,1 // Einfaches Grundobjekt, Kugel
object { myObject // mein eigenes Grundobjekt
...
==== Aufgabe 5 ====
Erstelle eine Animation, indem mit der Kamera über die Galaxien hinweg geflogen wird.