ulis, 07-10-2005. Un écran de démarrage dynamique pour Tcl.
Pourquoi
Bin pour mettre un peu d'animation, tiens !
Comment
L'image de la plume suit l'écriture du logo.
Le script
#################### # # # Animated Tcl # # # #################### set font(t) \ { {w 40} {l 10 70 10 110} {c 10 100 30 120 180 150} {l 10 85 25 85} } set font(c) \ { {w 40} {c 5 95 30 120 35 300} } set font(l) \ { {w 40} {l 10 50 10 110} {c 10 100 30 120 180 150} } # draw proc draw {w x y char color} \ { set width 0 set moved 0 set pi [expr {atan(1) * 4}] foreach stroke $char \ { foreach {func x0 y0 x1 y1 start extent} $stroke break set ww [expr {$::size + 1}] switch -glob -- $func \ { h* {} w* { set width $x0 } l* \ { set XX0 [expr {round(($x + $x0) * $::size)}] set YY0 [expr {round(($y + $y0) * $::size)}] set XX1 [expr {round(($x + $x1) * $::size)}] set YY1 [expr {round(($y + $y1) * $::size)}] set xl [expr {$XX1 - $XX0}] set yl [expr {$YY1 - $YY0}] set len [expr {sqrt($xl * $xl + $yl * $yl) / $ww}] set dxl [expr {$xl / $len}] set dyl [expr {$yl / $len}] set ids [list] foreach {dx dy} $::deltas \ { set DX [expr {$dx * $::size}] set DY [expr {$dy * $::size}] set X0 [expr {$XX0 + $DX}] set Y0 [expr {$YY0 + $DY}] set id [$w create line $X0 $Y0 $X0 $Y0 -width $ww -fill $color] lappend ids $id set a(X0:$id) $X0 set a(Y0:$id) $Y0 set a(X1:$id) $X0 set a(Y1:$id) $Y0 } $w raise img if {!$moved} { move $w img $X0 $Y0; set moved 1 } for {set l 0} {$l < $len} {incr l} \ { foreach id $ids \ { set a(X1:$id) [expr {$a(X1:$id) + $dxl}] set a(Y1:$id) [expr {$a(Y1:$id) + $dyl}] $w coords $id $a(X0:$id) $a(Y0:$id) $a(X1:$id) $a(Y1:$id) } set X0 [expr {$X0 + $dxl}] set Y0 [expr {$Y0 + $dyl}] $w coords img $X0 $Y0 update; after $::delay } array unset a } c* \ { set XX0 [expr {round(($x + $x0) * $::size)}] set YY0 [expr {round(($y + $y0) * $::size)}] set XX1 [expr {round(($x + $x1) * $::size)}] set YY1 [expr {round(($y + $y1) * $::size)}] set aa [expr {abs($XX1 - $XX0) / 2.0}] set bb [expr {abs($YY1 - $YY0) / 2.0}] set xc [expr {$XX0 + $aa}] set yc [expr {$YY0 + $bb}] set ids [list] if {$extent < 0} { set start [expr {$start + $extent}]; set extent [expr {-$extent}] } while {$start < 0} { set start [expr {$start + 360}] } foreach {dx dy} $::deltas \ { set DX [expr {$dx * $::size}] set DY [expr {$dy * $::size}] set X0 [expr {round($XX0 + $DX)}] set Y0 [expr {round($YY0 + $DY)}] set X1 [expr {round($XX1 + $DX)}] set Y1 [expr {round($YY1 + $DY)}] set id [$w create arc $X0 $Y0 $X1 $Y1 \ -start $start -extent 0 -style arc -width $ww -outline $color] lappend ids $id } $w raise img if {!$moved} \ { set ee [expr {$start * $pi / 180.0}] set X0 [expr {$xc + $aa * cos(-$ee)}] set Y0 [expr {$yc + $bb * sin(-$ee)}] move $w img $X0 $Y0 set moved 1 } for {set e 0} {$e < $extent} {set e [expr {$e + $ww}]} \ { foreach id $ids \ { $w itemconfig $id -extent $e } set ee [expr {($start + $e) * $pi / 180.0}] set X0 [expr {$xc + $aa * cos(-$ee)}] set Y0 [expr {$yc + $bb * sin(-$ee)}] $w coords img $X0 $Y0 update; after $::delay } array unset a } } } return [list $width $X0 $Y0] } proc move {w tag x y} \ { set delay [expr {$::delay / 4}] set xl [expr {($x - $::x0)}] set yl [expr {($y - $::y0)}] set len [expr {sqrt($xl * $xl + $yl * $yl) / $::size}] set dxl [expr {$xl / $len}] set dyl [expr {$yl / $len}] set X0 $::x0 set Y0 $::y0 for {set l 0} {$l < $len} {incr l} \ { set X0 [expr {$X0 + $dxl}] set Y0 [expr {$Y0 + $dyl}] $w coords $tag $X0 $Y0 update; after $delay } } proc write {w x y font text color} \ { set ::x0 0 set ::y0 0 while {$text != ""} \ { set char [string index $text 0] set text [string range $text 1 end] foreach {dx ::x0 ::y0} [draw $w $x $y [set ${font}($char)] $color] break incr x $dx } } # test package require Tk package require base64 set size 2 set delay 20 set width 200 set height 150 set deltas {+1 -1 0 0 -1 +1} wm protocol . WM_DELETE_WINDOW exit set plume(1) \ " R0lGODlhjAB/AP8AAAAymPz6+gAzoRJCoBU3lfvz7ffj2gEtlfjp5euzmPTU yBtEnOmge+GGaiU5kPba1BkzjPPQvzI1gyhTnu3x9Dg0eWQ5YvXBq+WZhEVn qkszadrj6yVJoGU0WOns8srV5OmplvLGuQ49iuOTeeXm6+ikjOu3p+3ArfG7 q+KLdrG600I3gCcyhVcxXaq61SxVo4Wbxll2tNbb6UY1dcbM4jZZprnG2u69 sOaropany92EZ0lyqKyJiIujydLi8HuUxPPMw+Tc5MPN21Q2cjljqGMtUdSU id2SdnSKujo0bwosi+jMw63D2FJvtJeWs3JJbFUzZTJBlcjR29mhlcN2d+7g 1pSm0XBahd/QzM7FztmyqaFyg8FsaF+IvWqCuryIhKe2zB9RqMi4x7SFe6aI lC0yfcuGfHiRuE1SjXCNwKarx1REeIOSvW2MwChCj/K+tNV8dEVFhlV1rejY 2Y1YZxgshUJcqkktZ1Jsrve1mr+OmU1stLTM4mR3rycsf4dkfMKRf9arsE9y saeXqcSbpqaNp2V8tKeavJ62yOzFtzwpbNu7t9qIdSVKnPKqkodwjJJ5ksmo ntWnpZmHoppccpRheIpZdLFtbpOexe/QyLezyYONt56QqM6xsMStttzM19TW 2fLt8ejO09G+y9nFzKKu08ikpfGjjUVLkfSfkmxmi5N0flRLhoNniqmQn7KU oXd4oltrn29ilDxRlkFbm8syAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAACH5BAEAALUALAAAAACMAH8AAAj/AGsJHEiwoMGD CBMqXMiwocOFDWrpSHAjQYI8JRKcYBDxocePIEOKfDjxRIQCBhAUCMCypcsA KA0kGEmzps2aCSIoWPmyp8+XERjcHEq0aIkQBnpSYEnCA4WmLD38fCmzqNWr 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 B6FosGeLlxOKukgQD+CFvZgTvVgQvjeMAhEQADs= " set plume(2) \ " R0lGODlhNQC4AP8AAAAymPz6+gAzoRU3lRJCoPvz7ffj2gEtleuzmBtEnPjp 5fba1PTUyOmgeyU5kDI1gxkzjChTnmQ5YvPQv/XBqzg0eSVJoO3x9OWZhOOT eUVnqkszafLGuens8trj62U0WOu3p+KLduGGaoWbxsrV5EI3gA49irG601l2 tCcyheXm692EZ7nG2u3AremplvG7q8PN2+ikjCxVozZZpsbM4pany1cxXUly qOarokY1daq61dbb6XuUxNSUiYujyayJiDljqLyIhN2Sds7FzvPMw1JvtGMt UdLi8HSKuujMw1Q2cq3D2NmhlXJJbN/QzC0yfaFyg1JsrmqCuihCjwosi5Sm 0VUzZfe1mjJBle69sOTc5OjY2cjR26e2zB9RqG2MwPK+tDo0b8N2d5pcclV1 rV+IvScsfxgshfKqkjwpbMFsaLSFe41YZ3BahVREeE1SjdarsE9ysZeWs9Wn pdmyqWR3r8i4x+7g1rTM4k1stHiRuKarx7+OmSVKnNV8dKeXqdu7t3CNwEFb m562yMuGfIOSvZmHoqeavNqIdaaIlEktZ0VFhqaNp+zFt5OexYpZdPSfkm9i lOjO09zM1/Lt8dTW2dnFzDxRlrFtbu/QyNG+y7ezyZ6QqFRLhodwjMmonkJc qqmQn2xmi4Nniltrn7KUocSttmV8tIONt5J5kpRheMKRf86xsPGjjYdkfJN0 fssyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAACH5BAEAALAALAAAAAA1ALgAAAj/AGEJHEiwoMGD CBsgWOiiAcKHECMaRABrgoEABhRgBCGxo8eBBhAEGEmSJIOPKB8auFiyZYAJ KWMKbBCggMuRHi6QpCjzY4ubMGAgKRInTigGDAL09CiyJQ0ZPGYAADAgAQBV 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 sogAsbiL0MYVAQEAOw== " wm withdraw . image create photo img -data $plume(1) set bg #cc3300 set cw [expr {round($width * $size)}] set ch [expr {round($height * $size)}] toplevel .t set sw [winfo screenwidth .t] set sh [winfo screenheight .t] set x [expr {($sw - $cw) / 2}] set y [expr {($sh - $ch) / 2}] wm geometry .t +$x+$y wm overrideredirect .t 1 pack [canvas .t.c -width $cw -height $ch -bg $bg -highlightt 0] .t.c create image -200 -200 -anchor sw -image img -tags img focus -force .t focus -force .t.c raise .t write .t.c 20 10 ::font tcl #003399 img blank .t.c move img 50 0 img put $plume(2) after 2500 exit
Discussion
Kroc - 10 Oct 2005 : Très chouette, beau boulot Maurice !