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批量修改文件后缀的方法
Jan 26 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
Python之文字转图片方法
May 10 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
详解flask表单提交的两种方式
Jul 21 Python
tornado+celery的简单使用详解
Dec 21 Python
python随机模块random使用方法详解
Feb 14 Python
Python2手动安装更新pip过程实例解析
Jul 16 Python
浅析NumPy 切片和索引
Sep 02 Python
python中如何打包用户自定义模块
Sep 23 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
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
学习ExtJS table布局
2009/10/08 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
django中forms组件的使用与注意
2019/07/08 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
个人找工作求职简历的自我评价
2013/10/20 职场文书
中专生自我鉴定
2013/12/17 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
军训通讯稿范文
2015/07/18 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP