Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
Hallo zusammen, vermöge In[18]:= Remove[ kreisZeit] kreisZeit[\[Beta]_?NumericQ] := Module[{r0 = 2, \[Delta] = 0.01, anz, rds, sh, f}, anz = Floor[Log[\[Beta], \[Delta]/r0]]; rds = r0 Table[\[Beta]^o, {o, anz}]; sh = Join[{{0, (\[Beta] - 1) r0}}, -r0 Table[{0, \[Beta]^ o (1 - \[Beta])}, {o, anz - 1}]]; f = Take[Flatten[Table[{Blue, Red, Green}, {Ceiling[anz/3]}]], anz]; Graphics[{{Thickness[0.01], Circle[{0, 0}, r0 + 0.0215]}, Dynamic[{#[[1]], Disk[#[[2]], #[[3]]]}& /@ Transpose[{f, Rest[FoldList[ RotationTransform[#2[[2]], #1][#1 - #2[[1]]] &, {0, 0}, Transpose[{sh, Take[Flatten[ Table[{-30 Mod[ Refresh[AbsoluteTime[], UpdateInterval -> 1]/3600, 60] \[Degree], -6 Mod[ Refresh[AbsoluteTime[], UpdateInterval -> 1]/60, 60] \[Degree], -6 Mod[ Refresh[AbsoluteTime[], UpdateInterval -> 1], 60] \[Degree]}, {Ceiling[anz/3]}]], anz]}]]], rds}]]}] ] /; 1 > \[Beta] > 1/10 erhält man mit In20]:= kreisZeit[0.97]eine iterativ-rekursive Uhr mit Stunden-, Minuten- und Sekundenkreisen, die mit dem je grösseren Kreis (der nullte Kreis ist das Ziffernblatt) an der Zeitstelle (h, min bzw. sek) eine gemeinsame Tangente haben. Der Stundenkreis der nächsten Generation bewegt sich im Sekundenkreis der vorangegangenen Generation, ad inifimum (mod Pixelgrösse).
Gruss Udo.P.S.: Die Uhr kann Andreas als Beispiel dienen, wie und wo Dynamic[] sinnvoll eingesetzt wird: bringt man nämlich das Dynamic[] weiter nach innen in kreisZeit[], im Ernstfall etwa direkt um jeden einzelnen Refresh[] Ausdruck, dann geht die Uhr nicht.
kreisZeit.jpeg
Description: JPEG image
Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
DMUG-Archiv, http://www.mathematica.ch/archiv.html