lehrkraefte:blc:math:povray:lektion8lw

Sei $P$ ein Punkt auf dem Einheitskreis (Kreis um $(0,0)$ mit Radius 1). Die Koordinaten von $P$ sind $P=(\cos(\alpha), \sin(\alpha))$, wobei $\alpha$ der Winkel zwischen der positiven $x$-Achse und $\vec{OP}$ ist. Positive Winkel werden in der Richtung $x$- zu $y$-Achse gemessen (d.h. bei üblicher Achsenwahl im Gegenuhrzeigersinn).

Studieren Sie folgenden Code, der Kugeln auf dem Einheitskreis platziert.

kurve.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)
}
 
light_source { 
  <0,0,2>              // 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  {checker color rgb 1 color rgb 0.3}
}
 
// Punkt aus Winkel berechnen
#macro meinPunkt(winkel) 
  <cos(winkel), sin(winkel), 0 >
#end
 
#declare startw=0;
#declare endw=2*pi;  // 360 Grad im Bogenmass, weil cos(.) und sin(.) von POV-Ray im Bogenmass arbeiten
#declare schritte=20;
#declare winkel = startw;
#declare dwinkel = (endw-startw)/schritte;
#while(winkel<endw)
  // Kugel, Mittelpunkt durch Funktion meinPunkt berechnen.
  sphere { meinPunkt(winkel), 0.1
    // Farbe, mit oszillierenden Farbkanälen
    pigment { color rgb <cos(winkel)/2+0.5, 0.5, sin(winkel)/2+0.5> }   
    finish { phong 0.9 }
  }
  #declare winkel = winkel + dwinkel;
#end

So wie der Code jetzt ist, vollführt die $x$- und die $y$-Koordinate genau eine Schwingung. Ändern Sie nun das Makro so ab, dass die $y$-Koordinate 2 Schwingungen und die $x$-Koordinate nach wie vor eine Schwingung vollführt. Überlegen Sie sich, was für eine Figur entstehen könnte. Erhöhen Sie die Anzahl platzierter Kugeln.

Ändern Sie die Frequenzen von $x$ und $y$ auf zwei benachbarte, kleine Primzahlen.

Führen Sie eine dritte Schwingung für die $z$-Koordinate ein. Je nach Figur lohnt es sich, eine Animation damit zu erzeugen, um die Figur besser zu sehen.

Bis jetzt war der Radius, bzw. die Amplitude fix 1. Schreiben Sie sich die Funktion $f$ einer Schwingung mit Frequenz 5 und Amplitude 0.3. Addieren Sie dann noch 1 zu dieser Funktion.

  • Nehmen Sie noch einmal den Code mit dem Einheitskreis und variieren Sie den Radius mit ihrer Funktion $f$. Dazu reicht es, den Vektor im Makro mit der Funktion $f$ zu multiplizieren.
  • Addieren Sie zum Resultat einen Vektor, dessen $z$-Komponente mit der gleichen Frequenz und Amplitude schwingt wie $f$. Ersetzen Sie aber $\sin$ durch $\cos$ (bzw. umgekehrt).

Bei Pflanze treten oft Spiralen auf, wie z.B. bei Ananas, Romanesco, Sonnenblumen, Tannzapfen, Blütenständen etc. Betrachtet man Elemente dieser Pflanzen, die grössenmässig (bzw. nach Radius geordnet) aufeinanderfolgen, stellt man fest, dass der Winkel dazwischen dem “goldenen” Winkel $$ \varphi = \frac{\sqrt{5}-1}{2} \cdot 360^{\circ} $$ entspricht. Die Idee ist, das $n$-te Element mit dem Winkel $n \cdot \varphi$ platzieren. Der Radius im Falle z.B. der Sonnenblume ist proportional zu $\sqrt{n}$. Dies hat zur Folge, dass die Anzahl Elemente pro Fläche in etwa konstant ist.

Platzieren Sie Kugeln nach dieser Methode um den Blütenstand einer Sonnenblume zu erzeugen.

  • lehrkraefte/blc/math/povray/lektion8lw.txt
  • Last modified: 2017/06/22 21:02
  • by Ivo Blöchliger