zoukankan      html  css  js  c++  java
  • 时钟小程序(复制大佬代码)

    链接:https://www.cnblogs.com/nowgood/p/turtle.html

      1 # coding=utf-8  
      2    
      3 import turtle  
      4 from datetime import *  
      5    
      6 # 抬起画笔,向前运动一段距离放下  
      7 def Skip(step):  
      8     turtle.penup()  
      9     turtle.forward(step)  
     10     turtle.pendown()  
     11    
     12 def mkHand(name, length):  
     13     # 注册Turtle形状,建立表针Turtle  
     14     turtle.reset()  
     15     Skip(-length * 0.1)  
     16     # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。  
     17     turtle.begin_poly()  
     18     turtle.forward(length * 1.1)  
     19     # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。  
     20     turtle.end_poly()  
     21     # 返回最后记录的多边形。  
     22     handForm = turtle.get_poly()  
     23     turtle.register_shape(name, handForm)  
     24    
     25 def Init():  
     26     global secHand, minHand, hurHand, printer  
     27     # 重置Turtle指向北  
     28     turtle.mode("logo")  
     29     # 建立三个表针Turtle并初始化  
     30     mkHand("secHand", 135)  
     31     mkHand("minHand", 125)  
     32     mkHand("hurHand", 90)  
     33     secHand = turtle.Turtle()  
     34     secHand.shape("secHand")  
     35     minHand = turtle.Turtle()  
     36     minHand.shape("minHand")  
     37     hurHand = turtle.Turtle()  
     38     hurHand.shape("hurHand")  
     39      
     40     for hand in secHand, minHand, hurHand:  
     41         hand.shapesize(1, 1, 3)  
     42         hand.speed(0)  
     43      
     44     # 建立输出文字Turtle  
     45     printer = turtle.Turtle()  
     46     # 隐藏画笔的turtle形状  
     47     printer.hideturtle()  
     48     printer.penup()  
     49       
     50 def SetupClock(radius):  
     51     # 建立表的外框  
     52     turtle.reset()  
     53     turtle.pensize(7)  
     54     for i in range(60):  
     55         Skip(radius)  
     56         if i % 5 == 0:  
     57             turtle.forward(20)  
     58             Skip(-radius - 20)  
     59              
     60             Skip(radius + 20)  
     61             if i == 0:  
     62                 turtle.write(int(12), align="center", font=("Courier", 14, "bold"))  
     63             elif i == 30:  
     64                 Skip(25)  
     65                 turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))  
     66                 Skip(-25)  
     67             elif (i == 25 or i == 35):  
     68                 Skip(20)  
     69                 turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))  
     70                 Skip(-20)  
     71             else:  
     72                 turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))  
     73             Skip(-radius - 20)  
     74         else:  
     75             turtle.dot(5)  
     76             Skip(-radius)  
     77         turtle.right(6)  
     78           
     79 def Week(t):     
     80     week = ["星期一", "星期二", "星期三",  
     81             "星期四", "星期五", "星期六", "星期日"]  
     82     return week[t.weekday()]  
     83    
     84 def Date(t):  
     85     y = t.year  
     86     m = t.month  
     87     d = t.day  
     88     return "%s %d%d" % (y, m, d)  
     89    
     90 def Tick():  
     91     # 绘制表针的动态显示  
     92     t = datetime.today()  
     93     second = t.second + t.microsecond * 0.000001  
     94     minute = t.minute + second / 60.0  
     95     hour = t.hour + minute / 60.0  
     96     secHand.setheading(6 * second)  
     97     minHand.setheading(6 * minute)  
     98     hurHand.setheading(30 * hour)  
     99       
    100     turtle.tracer(False)   
    101     printer.forward(65)  
    102     printer.write(Week(t), align="center",  
    103                   font=("Courier", 14, "bold"))  
    104     printer.back(130)  
    105     printer.write(Date(t), align="center",  
    106                   font=("Courier", 14, "bold"))  
    107     printer.home()  
    108     turtle.tracer(True)  
    109    
    110     # 100ms后继续调用tick  
    111     turtle.ontimer(Tick, 100)  
    112    
    113 def main():  
    114     # 打开/关闭龟动画,并为更新图纸设置延迟。  
    115     turtle.tracer(False)  
    116     Init()  
    117     SetupClock(160)  
    118     turtle.tracer(True)  
    119     Tick()  
    120     turtle.mainloop()  
    121    
    122 if __name__ == "__main__":  
    123     main()  

    待校赛结束后研究

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/kangdong/p/8870045.html
Copyright © 2011-2022 走看看