Differences
This shows you the differences between two versions of the page.
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}$ | * $f(x) = \sqrt{x}$ | ||
+ | * Gleichzeitig beide Funktionen $f(x)=\sqrt{1-(1-|x|)^2}$ und $g(x)=-3\sqrt{1-\sqrt{\frac{|x|}{2}}}$. | ||
==== Aufgabe 2: " | ==== Aufgabe 2: " | ||
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:// | ||
+ | |||
+ | |||
+ | Alternative mit weniger Rechenfehler: | ||
+ | <code povray> | ||
+ | #declare starty=-2; | ||
+ | #declare endy=2; | ||
+ | #declare n=50; | ||
+ | #declare dy=(endy-starty)/ | ||
+ | #declare i=0; | ||
+ | #while (i< | ||
+ | #declare yy=starty+i*dy; | ||
+ | sphere { <0,yy, meinf(yy)>, | ||
+ | pigment { color rgb x } | ||
+ | } | ||
+ | #declare i=i+1; | ||
+ | #end | ||
+ | </ | ||
==== 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$ |
* $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 | + | Funktionen können |
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, | + | kochKurve(a, |
// 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, | ||
+ | // alle eine gemeinsame Farbe und evtl. Transformationen erhalten können. | ||
union { | union { | ||
kochKurve(< | kochKurve(< |