Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kurse:povray23:basicmoves [2023/07/03 10:58] Ivo Blöchliger [Mehr als zwei Bewegungen] |
kurse:povray23:basicmoves [2023/08/14 10:15] (current) Ivo Blöchliger [Mehr als zwei Bewegungen] |
||
---|---|---|---|
Line 168: | Line 168: | ||
</ | </ | ||
- | ==== Drehpendel | + | ==== Pendelbewegung |
{{kurse: | {{kurse: | ||
Line 191: | Line 191: | ||
===== Kombination von Bewegungen ===== | ===== Kombination von Bewegungen ===== | ||
- | Idee: Wir teilen das Zeitintervall in Unterintervalle auf und berechnen | + | Idee: Wir teilen das Zeitintervall in Unterintervalle auf und berechnen |
{{kurse: | {{kurse: | ||
Line 213: | Line 213: | ||
#declare myclock = (clock-0.5)*2; | #declare myclock = (clock-0.5)*2; | ||
translate (4*myclock-2)*y | translate (4*myclock-2)*y | ||
- | translate 4*3*(1-myclock)*myclock*z | + | translate 4*3*(1-myclock)*myclock*z |
#end | #end | ||
} | } | ||
Line 219: | Line 219: | ||
==== Mehr als zwei Bewegungen ==== | ==== Mehr als zwei Bewegungen ==== | ||
- | POV-Ray hat kein '' | + | POV-Ray hat kein '' |
+ | |||
+ | Mit dem '' | ||
<code povray> | <code povray> | ||
Line 229: | Line 231: | ||
#switch (clock) | #switch (clock) | ||
- | #range (0, 0.25) | + | #range (0, 0.2499) |
#declare myclock = 4*clock; | #declare myclock = 4*clock; | ||
rotate -180*x*myclock | rotate -180*x*myclock | ||
# | # | ||
- | #range (0.25, 0.5) | + | #range (0.25, 0.4999) |
#declare myclock = 4*(clock-0.25); | #declare myclock = 4*(clock-0.25); | ||
rotate -180*x | rotate -180*x | ||
rotate -180*y*myclock | rotate -180*y*myclock | ||
#break | #break | ||
- | #range (0.5, 0.75) | + | #range (0.5, 0.7499) |
#declare myclock = 4*(clock-0.5); | #declare myclock = 4*(clock-0.5); | ||
rotate -180*x | rotate -180*x | ||
Line 259: | Line 261: | ||
<WRAP todo> | <WRAP todo> | ||
- | Anstatt '' | + | Anstatt '' |
<code povray> | <code povray> | ||
#declare myclock = 4*clock - floor(4*clock) | #declare myclock = 4*clock - floor(4*clock) | ||
Line 267: | Line 269: | ||
#declare myclock = mod(4*clock, | #declare myclock = mod(4*clock, | ||
</ | </ | ||
+ | Die vier Definitionen in den ''# | ||
Die Animation kann noch ansprechender gemacht werden, wenn die Drehung nicht gleichmässig ist, sondern am Anfang und Ende schneller und dazwischen langsamer (als ob der Torus fallen würde). | Die Animation kann noch ansprechender gemacht werden, wenn die Drehung nicht gleichmässig ist, sondern am Anfang und Ende schneller und dazwischen langsamer (als ob der Torus fallen würde). | ||
Line 272: | Line 275: | ||
Gehen Sie dazu wie folgt vor: | Gehen Sie dazu wie folgt vor: | ||
- | * Zeichnen | + | * Skizzieren |
- | * Skizzieren Sie die gewünschte Funktion $g(t)$, die am Anfang bei $g(t)=0$ steiler ansteigt, bei $t=0.5$ ebenfalls den Wert 0.5 liefert (aber weniger steil ist) und bei $g(1)=1$ ebenfalls steiler ist. | + | * Skizzieren Sie ins gleiche Koordinatensystem |
* Skizzieren Sie die Differenz $d(t) = g(t)-f(t)$ und bestimmen Sie eine Funktion, die in etwa die Form von $d(t)$ hat. | * Skizzieren Sie die Differenz $d(t) = g(t)-f(t)$ und bestimmen Sie eine Funktion, die in etwa die Form von $d(t)$ hat. | ||
* Unsere gesuchte Funktion ist also $g(t) = f(t)+d(t) = t+d(t)$. | * Unsere gesuchte Funktion ist also $g(t) = f(t)+d(t) = t+d(t)$. | ||
Line 283: | Line 286: | ||
</ | </ | ||
+ | Mit «natürlicherer» Bewegung (aber immer noch physikalisch inkorrekt): | ||
+ | |||
+ | {{kurse: | ||
+ | |||
+ | === Noch eleganterer Code für diesen Fall === | ||
+ | Betrachten wir die Funktion für den Drehwinkel der z.B. zweiten Drehung, kann die Funktion wie folgt beschrieben werden: | ||
+ | |||
+ | $$ | ||
+ | f(t) = \left\{\begin{array}{ll} | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | $$ | ||
+ | |||
+ | POV-Ray bietet eine Funktion '' | ||
+ | Damit kann obiger Code gänzlich ohne '' | ||
+ | |||
+ | <code povray> | ||
+ | // Einfachere Formeln, wenn clock gleich schon mit 4 multipliziert wird | ||
+ | #declare myclock=4*clock; | ||
+ | // | ||
+ | // ... | ||
+ | // | ||
+ | |||
+ | rotate clip(myclock, | ||
+ | rotate clip(myclock-1, | ||
+ | rotate clip(myclock-2, | ||
+ | rotate clip(myclock-3, | ||
+ | | ||
+ | </ | ||
+ | |