python使用turtle库绘制时钟


Posted in Python onMarch 25, 2020

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后继续调用tick

def main():
 tracer(False)
 init()
 setupclock(160)
 tracer(True)
 tick()
 mainloop()
main()

运行结果

python使用turtle库绘制时钟

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常见数据结构详解
Jul 24 Python
Python版微信红包分配算法
May 04 Python
简单实现python进度条脚本
Dec 18 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
Jan 10 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
keras在构建LSTM模型时对变长序列的处理操作
Jun 29 Python
pandas提升计算效率的一些方法汇总
May 30 Python
Python日期时间对象转换为字符串的实例
Jun 22 #Python
python pandas 对时间序列文件处理的实例
Jun 22 #Python
python使用turtle绘制分形树
Jun 22 #Python
python递归函数绘制分形树的方法
Jun 22 #Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 #Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 #Python
python处理csv中的空值方法
Jun 22 #Python
You might like
对javascript和select部件的结合运用
2006/10/09 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
jQuery 选择器理解
2010/03/16 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
微信小程序自定义单项选择器样式
2019/07/25 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
对Python 内建函数和保留字详解
2018/10/15 Python
python感知机实现代码
2019/01/18 Python
python中字典增加和删除使用方法
2020/09/30 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
优秀社区干部事迹材料
2014/02/03 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
后备干部推荐材料
2014/12/24 职场文书
Python图片检索之以图搜图
2021/05/31 Python