国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用turtle庫繪制時鐘

2020-02-15 21:58:27
字體:
來源:轉載
供稿:網友

Python函數庫眾多,而且在不斷更新,所以學習這些函數庫最有效的方法,就是閱讀Python官方文檔。同時借助Google和百度。

本文介紹的turtle庫對應的官方文檔地址

繪制動態鐘表的基本思路如下(面向對象的編程):

使用5個turtle對象
1個turtle:繪制外表盤
3個turtle:模擬表針行為
1個turtle:輸出表盤上文字

根據實時時間使用ontimer()函數更新表盤畫面,顯示效果如下:

相關函數的使用在程序中進行了詳細的注釋,代碼如下:

# -*- coding: utf-8 -*-"""Created on Fri Jan 12 10:43:55 2018@author: Administrator"""from turtle import *from datetime import *def skip(step):  penup()  forward(step)  pendown()def mkhand(name,length):  #注冊turtle形狀,建立表針turtle  reset()  skip(-length*0.1)  begin_poly()  forward(length*1.1)  end_poly()  handform=get_poly()  register_shape(name,handform)def init():  global sechand,minhand,hurhand,printer  mode("logo")  #重置turtle指向北  #建立三個表針turtle并初始化  mkhand("sechand",125)  mkhand("minhand",130)  mkhand("hurhand",90)  sechand=Turtle()  sechand.shape("sechand")  minhand=Turtle()  minhand.shape("minhand")  hurhand=Turtle()  hurhand.shape("hurhand")  for hand in sechand,minhand,hurhand:    hand.shapesize(1,1,3)    hand.speed(0)  #建立輸出文字turtle  printer = Turtle()  printer.hideturtle()  printer.penup()def setupclock(radius):  #建立表的外框  reset()  pensize(7)  for i in range(60):    skip(radius)    if i %5==0:      forward(20)      skip(-radius-20)    else:      dot(5)      skip(-radius)    right(6)def week(t):  week=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]  return week[t.weekday()]def date(t):  y=t.year  m=t.month  d=t.day  return "%s %d %d" %(y,m,d)def tick():  #繪制表針的動態顯示  t=datetime.today()  second=t.second+t.microsecond*0.000001  minute=t.minute+second/60.0  hour=t.hour+second/60.0  sechand.setheading(6*second)  minhand.setheading(6*minute)  hurhand.setheading(30*hour)  tracer(False)  printer.forward(65)  printer.write(week(t),align="center",font=("Courier",14,"bold"))  printer.back(130)  printer.write(date(t),align="center",font=("Courier",14,"bold"))  printer.home()  tracer(True)  ontimer(tick,100)#100ms后繼續調用tickdef main():  tracer(False)  init()  setupclock(160)  tracer(True)  tick()  mainloop()main()

運行結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北宁市| 华亭县| 邹城市| 达拉特旗| 阿巴嘎旗| 罗山县| 称多县| 元氏县| 云浮市| 余干县| 东台市| 新干县| 锡林浩特市| 杭州市| 上饶市| 隆化县| 台北市| 鱼台县| 拉孜县| 绥宁县| 特克斯县| 龙游县| 沅陵县| 菏泽市| 若羌县| 疏附县| 五指山市| 时尚| 青铜峡市| 冀州市| 阜平县| 景洪市| 远安县| 大安市| 唐山市| 临江市| 炎陵县| 巢湖市| 交城县| 呼图壁县| 茂名市|