lehrkraefte:blc:math:povray:lektion3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
lehrkraefte:blc:math:povray:lektion3 [2017/05/11 14:45] – [Aufgabe 5] Ivo Blöchligerlehrkraefte:blc:math:povray:lektion3 [2017/05/12 05:43] (current) Ivo Blöchliger
Line 1: Line 1:
 +===== Lektion vom 12. Mai 2017 =====
  
 +==== Aufgabe 0 ====
 +Falls noch nicht gemacht, studieren Sie die Beispiele zu [[lehrkraefte:blc:math:povray:while|Wiederholungen mit einer while-Schleife]].
 +
 +Speichern Sie folgenden Code (bzw. kopieren Sie diesen) und erzeugen (rendern) Sie das Bild.
 +<code povray twister.pov>
 +// Kamera
 +camera { 
 +  sky <0,0,1>           // Vektor, der festlegt, wo oben ist.
 +  right <-4/3,0,0>     // Bildverhältnis 4:3, plus Spiegelung für rechtsdrehendes System
 +  location <5,1,3>    // Position der Kamera
 +  look_at <0, 0, 0>    // Blickrichtung (erscheint im Bildmittelpunkt)
 +  angle 30             // Öffnungswinkel der Kamera
 +}
 +
 +// Lichtquellen
 +light_source { 
 +  <6,-2,8>              // Position des Lichts
 +  color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1)
 +}
 +light_source { 
 +  <3,10,3>              // Position des Lichts
 +  color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1)
 +}
 +
 +// Boden
 +plane { 
 +  z,-1        // Ebene, senkrecht zu z=<0,0,1>, mit Abstand -1 zum Ursprung
 +  pigment {  // Schachbrett, durchsichtig (t steht für transmit, hier 80% lichtdurchlässig
 +    checker color rgbt <1,1,1,0.8>, color rgbt <0.2,0.2,0.2,0.8>
 +  }
 +}
 +
 +#declare n=32;  // Anzahl Schritte
 +#declare i=0;   // Variable, die im while-loop hochgezaehlt wird
 +#while (i<n)    // Solange wie i<n, wiederhole alles zwischen hier und #end
 +  cone { <0,0,0>, 0.1, 0.3*z, 0   // Kegel vom Nullpunkt mit Spitze auf z-Achse
 +    // Farbe. Sinus, Cosinus erwarten Argumente in Radiant (2*pi entspricht 360 Grad)
 +    pigment { color rgb <(cos(i*2*pi/n)+1)/2, (cos(i*2*pi/n+2*pi/3)+1)/2, (cos(i*2*pi/n+4*pi/3)+1)/2> }
 +    // Ein bisschen Transformationsmagie...
 +    rotate i/n*360*x
 +    translate y
 +    rotate i/n*360*z
 +    // Weil's halt schoen ist.
 +    finish { phong 0.95 reflection 0.99 conserve_energy }
 +  } // Ende des Kegels
 +  #declare i=i+1;  // Erhoehe die Variable i um 1
 +#end //while
 +</code>
 +
 +==== Aufgabe 1 ====
 +  * Studieren und verstehen Sie die "Transformationsmagie" im obigen Code.
 +  * Ändern Sie den Code so ab, dass sich der Kegel zwei oder gar viel mal dreht.
 +  * Fügen Sie einen dünnen Torus mit Radius 1 um den Ursprung in der $x$/$y$-Ebene ein.
 +  * Ändern Sie den Code so ab, dass der Kegel "zentriert" auf dem Torus sind. 
 +
 +==== Aufgabe 2 ====
 +  * Studieren und verstehen Sie wie die Farbgebung im obigen Code funktioniert.
 +  * Was sind die "Frequenzen" und Phasen der Farbkanäle?
 +  * Verdoppeln Sie die Frequenz für rot.
 +
 +==== Aufgabe 3 ====
 +  * Ändern Sie den Code so, dass die Kegel auf eine Spirale nach aussen laufen.
 +  * Die Spirale soll 2 oder 3 Umdrehungen machen.
 +
 +==== Aufgabe 4 ====
 +  * Setzen Sie viele sich schneidende Kugeln zu einem Torus zusammen.
 +  * Verändern sie die $z$-Koordinate der Kugeln so, dass eine Federspiriale entseht. 
 +  * Variieren Sie die $z$-Koordinaten der Kugeln mit einer Cosinusfunktion (der Torus verläuft dann wellenförmig rauf und runter).
 +
 +==== Aufgabe 5 ====
 +Schneckenhäuser können durch "logarithmische" Spiralen beschrieben werden. Kurz, pro Umdrehung wird der Radius nicht um eine konstante Strecke grösser, sondern pro Umdrehung wird der Radius mit einer konstanten Zahl $\lambda$ multipliziert (typischerweise zwischen 1.2 und 3). Der Radius lässt sich als Funktion der Anzahl Umdrehungen $\omega$ beschreiben: $r(\omega)=r_0 \cdot \lambda^{\omega}$, wobei $r_0$ der Radius bei 0 Umdrehungen ist.
 +
 +  * Ordnen Sie Kugeln entlang einer logarithmischen Spirale an. Die Spirale soll mindestens 3 Umdrehungen machen.
 +  * Programmieren Sie die Radien der Kugeln proportional zum Radius der Spirale.
 +  * Programmieren Sie die $z$-Koordinate der Kugeln proportional zum Radius der Spirale.
 +  * Fassen Sie Ihr Schneckenhaus mit union { .... } zusammen. Erzeugen Sie ein zweites "Schneckenhaus", das den Gang darstellt. Dieses zweite Schneckenhaus kann vom ersten mit difference { haus1 haus2 } subtrahiert, bzw. ausgeschnitten werden.
 +
 +===== Aufgabe 6 =====
 +Programmieren Sie eine Wendeltreppe.