njithjw的个人空间 https://blog.eetop.cn/505866 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

clock

已有 732 次阅读| 2011-12-23 19:55 |个人分类:tcl_tk

grid [canvas .c -width 600 -height 600]
set halfpi  1.570796
set piover6 0.5235987
set twopi   6.283185

wm resizable . 0 0

.c create oval 50 50 550 550 -fill white -outline black -width 3
for { set h 1 } { $h <= 12 } { incr h } {
    set angle [expr { $halfpi - $piover6 * $h }]
    set x [expr { 300 + 200 * cos($angle) }]
    set y [expr { 300 - 200 * sin($angle) }]

    if {$h%3 == 0} {
        .c create text $x $y -text $h -font {Helvetica -60} -fill red
    } else {
        .c create text $x $y -text $h -font {Helvetica -40}
    }
}

for { set m 0 } { $m <= 59 } { incr m } {
    set angle [expr { $twopi * $m/60 }]
    set x0 [expr { 300 + 250 * sin($angle) }]
    set y0 [expr { 300 - 250 * cos($angle) }]

    set x1 [expr { 300 + 240 * sin($angle) }]
    set y1 [expr { 300 - 240 * cos($angle) }]

    if {$m%5 == 0} {
        set line_width 6
    } else {
        set line_width 2
    }

    .c create line $x0 $y0 $x1 $y1 -width $line_width

    set x2 [expr { 300 + 230 * sin($angle) }]
    set y2 [expr { 300 - 230 * cos($angle) }]

    .c create text $x2 $y2 -text $m -font {Helvetica -10}
}

set year_date [clock format [clock seconds] -format "%Y-%m-%d"]
.c create text 300 350 -text $year_date -font {Helvetica -30}

set week [clock format [clock seconds] -format "%A"]
.c create text 300 390 -text $week -font {Helvetica -30}

.c create text 300 180 -text " " -font {"宋体" -30}
.c create text 300 430 -text " " -font {"宋体" -30}

proc hands {} {
    catch { .c delete withtag hands }

    # Compute seconds since midnight

    set s [expr { [clock seconds] - [clock scan 00:00:00] }]

    # Hour hand

    set angle [expr { $s * $::twopi / 60. / 60. / 12. }]
    set y [expr { 300 - 150 * cos($angle) }]
    set x [expr { 300 + 150 * sin($angle) }]
    .c create line 300 300 $x $y -width 8 -fill black -capstyle. projecting -tags hands

    # Minute hand

    set angle [expr { $s * $::twopi / 60. / 60. }]
    set y [expr { 300 - 175 * cos($angle) }]
    set x [expr { 300 + 175 * sin($angle) }]
    .c create line 300 300 $x $y -width 4 -fill blue -capstyle. projecting -tags  hands

    # Angle of second hand

    set angle [expr { $s * $::twopi / 60. }]
    set y [expr { 300 - 200 * cos($angle) }]
    set x [expr { 300 + 200 * sin($angle) }]
    .c create line 300 300 $x $y -width 2 -fill violet -tags hands

    .c create oval 290 290 310 310 -fill black

#    bell

    after 1000 hands

}

hands


点赞

发表评论 评论 (1 个评论)

回复 njithjw 2011-12-25 19:32
-capstyle后面多了一点。 时间和日期没有办法更新:lol

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 17

    评论
  • 3512

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-2 11:19 , Processed in 0.024303 second(s), 16 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部