kurse:povray23:basicmoves

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
kurse:povray23:basicmoves [2023/08/14 09:57]
Ivo Blöchliger [Kombination von Bewegungen]
kurse:povray23:basicmoves [2023/08/14 10:15] (current)
Ivo Blöchliger [Mehr als zwei Bewegungen]
Line 289: Line 289:
  
 {{kurse:povray23:vierstuecke-better.gif}} {{kurse:povray23:vierstuecke-better.gif}}
 +
 +=== 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}
 +   0^\circ & \text{wenn }t<0.25 \\
 +   180^\circ & \text{wenn }t>0.5 \\
 +   180^\circ \cdot (t-0.25)*4 & \text{sonst}
 +   \end{array} \right.
 +$$
 +
 +POV-Ray bietet eine Funktion ''clip(v,min,max)'', die ''v'' liefert, wenn ''v'' zwischen den Werten ''min'' und ''max''. Wenn ''v'' kleiner als ''min'' ist, liefert die Funktion den Wert ''min'', wenn ''v'' grösser als ''max'' ist, liefert die Funktion den Wert ''max''.
 +Damit kann obiger Code gänzlich ohne ''if'' geschrieben werden:
 +
 +<code povray>
 +// Einfachere Formeln, wenn clock gleich schon mit 4 multipliziert wird
 +#declare myclock=4*clock;
 +//
 +// ... 
 +// 
 +
 +    rotate clip(myclock,   0, 1)*-180*x   // Erste Rotation (Startet sofort, stoppt nach myclock=1)
 +    rotate clip(myclock-1, 0, 1)*-180*y   // Zweite Rotation (Startet erst bei myclock=1, stoppt nach myclock=2)
 +    rotate clip(myclock-2, 0, 1)*180*x    // Dritte Rotation
 +    rotate clip(myclock-3, 0, 1)*180*y    // Vierte Rotation
 +    
 +</code>
 +    
  • kurse/povray23/basicmoves.1691999823.txt.gz
  • Last modified: 2023/08/14 09:57
  • by Ivo Blöchliger