Python中Turtle绘图函数-绘制时钟程序

Turtle常用的一些函数,
参考博客:http://blog.csdn.net/zengxiantao1994/article/details/76588580

时钟代码设计
  • 我们可以通过main函数查看整个时钟代码的设计
  • 设计指针(Init())并显示指针:设计指针的方向(turtle.mode(“logo”)),设计指针的长度、线宽,最后通过name注册该指针,函数最后结果为显示三个指向正上方的指针,三个指针重合。
  • 建立表的外框(DrawClock()):绘制0的60的每分钟圆点,如果是整点,就绘制整点标志
  • 开始动态运行时钟(Tick( )):获取当前的时间,依据当前时间得到每个指针该指向的方向角度,然后更改指针的指向,如secHand.setheading(角度)。写当前的日期。调用turtle.ontimer( )函数进入循环调用
时钟代码如下

绘制时钟的代码,选自慕课网嵩天老师《Python语言程序设计》

from turtle import*
from datetime import*# 移动距离,但是不绘制
def Skip(step):penup()forward(step)pendown()# 画表盘
def DrawClock(radius):reset()  # 将乌龟返回初始位置pensize(7)for i in range(60):Skip(radius)if i%5 == 0:forward(20)Skip(-radius - 20)else:dot(5)  # 绘制圆点turtle.dot(直径)Skip(-radius)right(6)def mkHand(name, length):reset()Skip(-length*0.1)begin_poly()forward(length*1.1)end_poly()handForm = get_poly()'''''begin_poly -- 开始记录,end_poly -- 结束记录,get_poly -- 绘画记录点'''register_shape(name, handForm)  # 给handForm形状起名def Init():global secHand, minHand, hurHand, printer  # 定义这三个是全局变量mode("logo")'''''三种模式:standard,logo,world。turtle方向    默认运动方向standard:    向右(朝东)  逆时针logo    :    向上(朝北)  顺时针world -- 自定义'''mkHand("secHand", 125)mkHand("minHand", 130)mkHand("hurHand", 90)secHand = Turtle()secHand.shape("secHand")  # 对于该turtle变量赋值形状minHand = Turtle()minHand.shape("minHand")hurHand = Turtle()hurHand.shape("hurHand")for hand in secHand, minHand, hurHand:hand.shapesize(1, 1, 3)  # 调整三根指针的粗细hand.speed(0)printer = Turtle()printer.hideturtle()  # 隐藏箭头printer.penup()def Week(t):week = ["星期一", "星期二", "星期三","星期四", "星期五", "星期六", "星期日"]return week[t.weekday()]def Date(t):y = t.yearm = t.monthd = t.dayreturn "%s %d %d" % (y, m, d)# 钟表更新
def Tick():t = datetime.today()second = t.second + t.microsecond*0.000001minute = t.minute + second/60.0hour = t.hour + minute/60.0secHand.setheading(6*second)  # 重新设置朝向,设置指针的方向角度minHand.setheading(6*minute)hurHand.setheading(30*hour)tracer(False)printer.forward(65)  # 前进65写星期printer.write(Week(t), align="center", font=("Courier", 14, "bold"))printer.back(130)   # 退后130写时间printer.write(Date(t), align="center", font=("Courier", 14, "bold"))# write函数中可以把指定的内容进行书写printer.home()tracer(True)ontimer(Tick, 100)  # 计时函数用来控制刷新时间。单位-毫秒def main():tracer(False)  # 关闭绘画追踪,可以用于加速绘画复杂图形Init()DrawClock(160)tracer(True)Tick()mainloop()  # mainloop则是主窗口的成员函数,# 开始接收鼠标的和键盘的操作。你现在就能够通过鼠标缩放以及关闭这个窗口了。if __name__ == "__main__":main()

代码运行效果图:
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5G的未来投资机会在哪里?

来源:网易智能日前,为了更好地以资本助推5G产业发展,中国移动投资公司与中国移动研究院联合发布了《洞见5G,投资未来——中国5G产业发展与投资报告》,分析了5G对生产和生活带来的变革,研判5G产业建设的投资…

C语言查找算法

/** 查找(数组) 1> 顺序查找 &#xff1a; 就是遍历数组每一个元素同该元素比较&#xff0c;但是问题是效率比较低 2> 折半查找 &#xff1a; 条件是数组必须是有顺序的 */ #include <stdio.h> #define n 2 int main() { // 折半查找 /* 思路&#xff1a;将该元素同…

python在windows系统中安装pandas,numpy

进入python的安装目录的sripts文件夹下&#xff0c; 在该文件夹下进入命令行&#xff0c;在命令行输入pip install pandas 等待成功安装 转载自&#xff1a;https://www.cnblogs.com/xuqiulin/p/6623154.html

华为5G首席科学家童文 | 5G:万物连接平台 智能世界基石

华为5G首席科学家、华为Fellow童文博士来源&#xff1a;华为2019年是5G产业进入全面商用的关键一年&#xff0c;全球5G网络的部署已经启动。2018年6月&#xff0c;5G独立组网标准冻结&#xff0c;5G完成了第一阶段全功能eMBB标准化工作&#xff1b;12月6日, 中国三大运营商获得…

js处理日期的一些整理(js获取给定日期前一天的日期)

var date new Date();alert(date);//获取当前时间 alert(date.getFullYear());//获取当前年分 alert(date.getMonth());//获取月份&#xff08;获取当前月份要加1&#xff09; alert(date.getDate());//获取当前日期的几号 alert(date.getDay());//获取当前是星期几 alert(dat…

windows下配置tensorflow

我使用的是python3.6版&#xff0c;目前该版本可以使用tensorflow&#xff0c; 安装tensorflow&#xff0c;参考博客 &#xff1a;https://www.cnblogs.com/nosqlcoco/p/6923861.html 在pycharm下配置tensorflow&#xff0c;参考博客&#xff1a;https://www.cnblogs.com/yingc…

深度解密:软银孙正义如何成为美国硅谷最有权势之人

来源&#xff1a;腾讯科技摘要&#xff1a;据外媒报道&#xff0c;伊隆马斯克、杰夫贝索斯亦或是马克扎克伯格(&#xff0c;都不如日本亿万富翁孙正义那样&#xff0c;对AI驱动的未来有着最大胆的愿景。在孙正义看来&#xff0c;未来机器将控制着我们的生活方式。为了实现这个愿…

【笔记】Windows Phone 8开发笔记之API

Windows Phone 8 API一览 Windows Phone 7平台不支持Native语言的开发&#xff0c;这困扰了许多游戏和底层应用的开发者。Windows Phone 8 SDK的推出&#xff0c;改善了这个情况。下图就是Windows Phone 8 的API构成。 1. .NET API for Windows Phone Windows Phone 8支持的托管…

自动驾驶之路已走了多远?一文读懂研究现状

作者&#xff1a;Claudine Badue等编译&#xff1a;机器之心 Panda摘要&#xff1a;自动驾驶载具或将引爆人类的下一次出行方式革命&#xff0c;而我们目前又已经走到了哪一步&#xff1f;近日&#xff0c;巴西圣埃斯皮里图联邦大学的研究者在 arXiv 上发布了一篇自动驾驶汽车研…

OpenCV的基本模块介绍

####文件结构 在调用opencv时需要用到的头文件分布&#xff08;默认安装情况下&#xff0c;同时下面都是基于2.4.x版本&#xff09;&#xff1a; 对windows系统来说&#xff0c;一般在OPENCV_DIR/build/include/文件夹下&#xff0c;所以在VS中调用时需要配置附加库目录&#…

真的超越了波士顿动力!深度强化学习打造的 ANYmal 登上 Science 子刊

编译&#xff1a;机器之心深度强化学习开发出的机器人模型通常很难应用到真实环境中&#xff0c;因此机器人开发中鲜少使用该技术。然而这已经板上钉钉了吗&#xff1f;在两天前引发人工智能界关注的 ANYmal 机器人中&#xff0c;其机动性和适应性看起来丝毫不逊色于波士顿动力…

让MySql支持Emoji表情(MySQL中4字节utf8字符保存方法)

手机端插入Emoji表情&#xff0c;保存到数据库时报错&#xff1a; Caused by: java.sql.SQLException: Incorrect string value: \xF0\x9F\x98\x84 for column review at row 1at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysql.jdbc.MysqlIO.ch…

如何查看OpenCV源码

我们可以查看OpenCV这个库的源代码&#xff0c; 具体操作方法参考&#xff1a; http://blog.csdn.net/cwt19902010/article/details/70227193 https://blog.csdn.net/kaspar1992/article/details/53326431 - 我们在Microsoft Visual Studio中通过 “右键 ->查看定义” 只…

实例化Model的三种方式

转载于:https://www.cnblogs.com/toward-the-sun/p/4030010.html

安装Opencv3

要添加系统变量。高级系统设计->环境变量->path&#xff0c; 我的为D:\OpenCV341\OpencV_vs2013_x64\install\x64\vc12\bin; 注意install文件夹是cmake编译生成的工程文件夹中的。 参考博客&#xff1a;http://blog.csdn.net/jinian2614/article/details/78176704?lo…

人形机器人,穷途末路还是光明未来?

来源&#xff1a;任赜宇的知乎专栏摘要&#xff1a;今年 11 月初在北京召开的 IEEE/RAS Humanoids 会议中&#xff0c;作者去听了这样一个 Workshop: Humanoid Robotics: Dead-end or Bright Future? (人形机器人&#xff0c;末路还是光明的未来&#xff1f;) 再结合当前的形势…

进入opencv内部函数调试

主要问题参考&#xff1a;http://blog.csdn.net/daven172/article/details/45769129 这篇博客。 我们进入opencv内部函数进行调试&#xff0c;主要是设置断点&#xff0c;然后按下F11键&#xff0c;VS2013编译器会自动跳转到opencv内部的函数。 如果我们进入内部的函数&#xf…

javascript高级程序设计-Array迭代及归并

迭代方法 every() 如果该函数对每一项都返回true&#xff0c;则返回true&#xff0c;否则返回false。 var numbers [1,2,3,4,3,2,1]; var everyResult numbers.every(function(item,index,array){return (item > 2); }); alert(everyResult); //result为false some() 如…

全球自动驾驶政策概况及特征研究

来源&#xff1a;《中国信息通信研究院CAICT》近年来&#xff0c;美、欧、日等发达国家和地区将自动驾驶技术作为交通未来发展的重要方向&#xff0c;在技术研发、道路测试、标准法规、政策等方面为自动驾驶及其载体——智能网联汽车的发展提供政策支持&#xff0c;加快自动驾驶…

Android开发记录(转)

一、Android模拟器相关 1. Android模拟器安装 Market 模拟器默认没有安装 Market&#xff0c;看到网上有较为复杂的安装方法&#xff0c;也有1个简单的&#xff0c;试了简单的&#xff0c;在 Android2.2 模拟器下试过是OK的&#xff0c;简单的方法如下&#xff1a;1) 下载2个文…