time_graph.tcl

来自「TCL脚本编写的时间显示例子」· TCL 代码 · 共 46 行

TCL
46
字号
    grid [canvas .c -width 200 -height 200]
    set halfpi 1.570796
    set piover6 0.5235987
    set twopi 6.283185
    
    .c create oval 2 2 198 198 -fill white -outline black
    for { set h 1 } { $h <= 12 } { incr h } {
        set angle [expr { $halfpi - $piover6 * $h }]
        set x [expr { 100 + 90 * cos($angle) }]
        set y [expr { 100 - 90 * sin($angle) }]
        .c create text $x $y -text $h -font {Helvetica -12}
    }
    
    proc hands {} {
        catch { .c delete withtag hands }
        
        # Compute seconds since midnight
        
        set s [expr { [clock seconds] - [clock scan 00:00:00] }]
        
        # Angle of second hand
        
        set angle [expr { $s * $::twopi / 60. }]
        set y [expr { 100 - 90 * cos($angle) }]
        set x [expr { 100 + 90 * sin($angle) }]
        .c create line 100 100 $x $y -width 1 -tags hands
        
        # Minute hand
        
        set angle [expr { $s * $::twopi / 60. / 60. }]
        set y [expr { 100 - 85 * cos($angle) }]
        set x [expr { 100 + 85 * sin($angle) }]
        .c create line 100 100 $x $y -width 3 -capstyle projecting -tags  hands
        
        # Hour hand
        
        set angle [expr { $s * $::twopi / 60. / 60. / 12. }]
        set y [expr { 100 - 60 * cos($angle) }]
        set x [expr { 100 + 60 * sin($angle) }]
        .c create line 100 100 $x $y -width 7 -capstyle projecting -tags hands
        
        after 1000 hands
        
    }
    hands
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?