lehrkraefte:blc:math:povray:lektion5

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:math:povray:lektion5 [2017/06/01 14:44]
Ivo Blöchliger [Aufgabe 6: Kochschneeflocke]
lehrkraefte:blc:math:povray:lektion5 [2017/06/02 11:07] (current)
Ivo Blöchliger [Aufgabe 6: Kochschneeflocke]
Line 71: Line 71:
   * $f(x) = |x|$ // Die Betragsfunktion in POV-Ray ist abs(...) (absolute value).//   * $f(x) = |x|$ // Die Betragsfunktion in POV-Ray ist abs(...) (absolute value).//
   * $f(x) = \sqrt{x}$  // Was müssen Sie anpassen? Die Wurzelfunktion in POV-Ray heisst sqrt(...).//   * $f(x) = \sqrt{x}$  // Was müssen Sie anpassen? Die Wurzelfunktion in POV-Ray heisst sqrt(...).//
 +  * Gleichzeitig beide Funktionen $f(x)=\sqrt{1-(1-|x|)^2}$ und $g(x)=-3\sqrt{1-\sqrt{\frac{|x|}{2}}}$.  // Definieren Sie ein neues #macro dafür.//
  
 ==== Aufgabe 2: "Linien" statt "Punkte" ==== ==== Aufgabe 2: "Linien" statt "Punkte" ====
 Verbinden Sie jeweils zwei benachbarte Kugeln mit einem Zylinder mit gleichem Radius. So entsteht eine durchgehende Linie. Verbinden Sie jeweils zwei benachbarte Kugeln mit einem Zylinder mit gleichem Radius. So entsteht eine durchgehende Linie.
  
 +Geben Sie die Datei auf SharePoint ab: https://sharepoint.ksbg.ch  (-> Klassen -> 2lW -> Abgabe -> dort Ihren Ordner öffnen -> POV-Ray Datei entweder hineinziehen, oder mit hochladen, durchsuchen auswählen).
 +
 +
 +Alternative mit weniger Rechenfehler:
 +<code povray>
 +#declare starty=-2;
 +#declare endy=2;
 +#declare n=50;
 +#declare dy=(endy-starty)/n;
 +#declare i=0;
 +#while (i<n)    // i ist eine ganze Zahl, darum keine Rechenfehler
 +  #declare yy=starty+i*dy; 
 +  sphere { <0,yy, meinf(yy)>, 0.04
 +    pigment { color rgb x }
 +  }         
 +  #declare i=i+1;
 +#end
 +</code>
 ==== Aufgabe 3: $z=f(x,y)$ ==== ==== Aufgabe 3: $z=f(x,y)$ ====
 Eine Funktion kann auch mehr als eine Eingabe haben. In dieser Aufgabe betrachten wir eine Art Landschaft, wobei die Höhe $z$ aus den $x$- und $y$-Koordinaten berechnet wird. Im folgenden Code wird die Funktion $f(x)=\frac{1}{2}\left(x^2+y^2\right)$ abgebildet: Eine Funktion kann auch mehr als eine Eingabe haben. In dieser Aufgabe betrachten wir eine Art Landschaft, wobei die Höhe $z$ aus den $x$- und $y$-Koordinaten berechnet wird. Im folgenden Code wird die Funktion $f(x)=\frac{1}{2}\left(x^2+y^2\right)$ abgebildet:
Line 132: Line 151:
   * $f(x,y) = \sin(x)+\sin(y)+2$   * $f(x,y) = \sin(x)+\sin(y)+2$
   * $f(x,y) = \cos\left(\sqrt{x^2+y^2}\right)+1$   * $f(x,y) = \cos\left(\sqrt{x^2+y^2}\right)+1$
-  * $f(x,y) = 2^{-\sqrt{x^2+y^2}}\cos\left(\sqrt{x^2+y^2}\right)+1$+  * $f(x,y) = 2^{-\sqrt{x^2+y^2}}\cos\left(\sqrt{x^2+y^2}\right)+1$    //Hinweis: Potenz $a^b$ in POV-Ray: pow(a,b)//
   * $f(x,y) = \cos(x)\cdot \cos(y)+1$   * $f(x,y) = \cos(x)\cdot \cos(y)+1$
  
Line 141: Line 160:
 **Studieren** Sie folgenden Text: **Studieren** Sie folgenden Text:
  
-Funktionen können beliebige viele Eingaben verarbeiten und beliebige Ausgaben produzieren. Funktionen können sich sogar selbst wieder zur Berechnung des Resultats gebrauchen.+Funktionen können beliebig viele Eingaben verarbeiten und beliebige Ausgaben produzieren. Funktionen können sich sogar selbst wieder zur Berechnung des Resultats gebrauchen.
  
 Wir werden eine Funktion (#macro) **koch** definieren. Als Eingabe benötigt die Funktion 3 Dinge: Startpunkt $A$ und Endpunkt $B$ der Strecke und die Angabe, wieviel mal die Strecke noch unterteilt werden soll (d.h. die Anzahl Rekursionen (Selbstaufrufe)). Wir werden eine Funktion (#macro) **koch** definieren. Als Eingabe benötigt die Funktion 3 Dinge: Startpunkt $A$ und Endpunkt $B$ der Strecke und die Angabe, wieviel mal die Strecke noch unterteilt werden soll (d.h. die Anzahl Rekursionen (Selbstaufrufe)).
Line 166: Line 185:
   #if (rekursionen=0)   #if (rekursionen=0)
     // TODO: Hier die Strecke zeichen, z.B. mit einer Kugel mit Zentrum a und einem Zylinder von a nach b     // TODO: Hier die Strecke zeichen, z.B. mit einer Kugel mit Zentrum a und einem Zylinder von a nach b
 +    // Nur die Objekte ohne Farbe definieren.
   #else   #else
     #local vv = ??;  // TODO: hier den Vektor ab berechnen     #local vv = ??;  // TODO: hier den Vektor ab berechnen
Line 172: Line 192:
     #local p2 = ??;  // TODO: p2 berechnen     #local p2 = ??;  // TODO: p2 berechnen
     #local p3 = ??;  // TODO: p3 berechnen     #local p3 = ??;  // TODO: p3 berechnen
-    kochKurve(a, p1, r, rekursionen-1)+    kochKurve(a, p1, rekursionen-1)
     // Hier die weiteren Segmente zeichnen     // Hier die weiteren Segmente zeichnen
   #end   #end
Line 178: Line 198:
  
 // Zeichnen der Kurve: // Zeichnen der Kurve:
 +// kochKurve liefert einzelne Objekte. Die werden in einer union zusammengefasst, damit
 +// alle eine gemeinsame Farbe und evtl. Transformationen erhalten können.
 union { union {
   kochKurve(<0,0, 0>, <0,1,0>, 1)  // 1 Rekursion zum Testen, dann auf 2,3,4 bis maximal 6 erhöhen   kochKurve(<0,0, 0>, <0,1,0>, 1)  // 1 Rekursion zum Testen, dann auf 2,3,4 bis maximal 6 erhöhen
  • lehrkraefte/blc/math/povray/lektion5.1496321063.txt.gz
  • Last modified: 2017/06/01 14:44
  • by Ivo Blöchliger