# $XConsortium: mtcircles,v 1.2 94/04/01 16:33:18 matt Exp $ # This dish script draws two circles that change their sizes # # Bugs: 1) Can't make tcl share one procedure (zoomer). # 2) Can't assign different delta's and pauses. # 3) Circle is not centered. proc zoomer1 {{delta 0.02} {pause 0.1}} { global left set scale 1.0 while {1} { delay pause set scale [expr $scale - $delta] if {$scale < 0.05 || $scale > 0.999999} { set delta [expr -$delta] } set t [left transform] if {$t != 0} { set t $t t load_identity t scale "{scale scale scale}" left need_redraw } } } proc zoomer2 {{delta 0.02} {pause 0.1}} { global right set scale 1.0 while {1} { delay pause set scale [expr $scale - $delta] if {$scale < 0.05 || $scale > 0.999999} { set delta [expr -$delta] } set t [right transform] if {$t != 0} { set t $t t load_identity t scale "{scale scale scale}" right need_redraw } } } set circle [ figure_kit figure_root [ figure_kit circle 0 [ figure_kit default_style ] 0 0 100 ] ] set left [figure_kit group] set right [figure_kit group] set hbox [layout_kit hbox] hbox append [figure_kit figure_root left] hbox append [layout_kit hfil] hbox append [figure_kit figure_root right] left append circle right append circle spawn [action zoomer1 0.02 0.1] spawn [action zoomer2 0.04 0.3] main 0 hbox