今天小千来给大家分享一篇用Python实现一个实时运动的大挂钟效果,最终的效果如下图所示,喜欢的话看下去~~

本项目用到的库主要有pygame、math、datetime等,另外还用到一些数学知识,勾股定理搞不明白的朋友就不要往下看了,可能会头晕。

第一步:用pygame画个圆

1.初始化画布参数

设置画布大小,添加标题,设置圆的原点、半径和角度:

2.画1个黑色边框的圆:

第二步:在圆上添加数字和刻度

1.添加数字

把圆周等分为12份,那么每份的角度为360/12,因为0点在垂直方向,所以再减去90度,由勾股定理,x=半径cos(角度),y=半径sin(角度),

因此代码设置如下:

2.添加刻度

原理同上,只不过把圆分成了60份

第三步:画时针、分针和秒针

1.把当天的日期提取出来

我们需要用python的datetime库:

再把月、日、时、分、秒提取出来:

2.开始画线,让指针动起来

先在中间画个半径为20的小圆圈

再画时针,主要用到pygame的draw.line函数:

效果图:

分针和秒针的的划线原理同时针,区别在于长度和粗细,加上分针和秒针的图为:

第四步:添加日期和星期

先将日期转化为星期,主要用到datetime及date函数:

这样之后我们再次运行程序就能看到最终的效果啦,看完之后别忘记自己上手试一试哦~

本文来自千锋教育,转载请注明出处。

用Python实现一个实时运动的大挂钟效果相关推荐

  1. 利用Python搭建一个实时监控可视化大屏

    本文分享使用python搭建服务器应用的监控系统面板,主要流程如下: 1.数据库中创建数据表 2.建立数据库连接 实时数据插入数据表,实时查询更新面板数据准备 3.监控中心大屏制作 具体步骤: 1.创 ...

  2. 用 python 做一个动态可视化交互大屏

    你可能经常会在公司前台.展会.路演时看到可视化数据的交互大屏.今天我们就来用 python 做一个动态可视化的交互大屏图. 一.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数 ...

  3. python做运动控制_用 Python 写一个跟踪运动对象系统

    这个该死的家伙.我就知道他偷了我最后一罐啤酒! 对于一个男人来讲,这些话永远都不该说.但是当我关上冰箱门的时候,我愤怒地叹息,感到厌恶,自言自语地说了这些. 你看,我花了12个小时写了这篇将要发表的文 ...

  4. 可操作性强!Python实现一个电影订票系统!

    来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...

  5. 用Python实现一个电影订票系统!

    一.效果展示  通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对 ...

  6. 【文末赠书】用Python实现一个电影订票系统!

    来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...

  7. Python搭建一个系统信息实时监控数据可视化大屏

    本文分享使用python搭建服务器应用的监控系统面板,主要流程如下: 1.数据库中创建数据表 2.建立数据库连接 实时数据插入数据表,实时查询更新面板数据准备 3.监控中心大屏制作 具体步骤: 1.创 ...

  8. 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(3)

    导语 上一期我们主要带大家写了勇士类,以及勇士与一些简单的地图元素接触时所触发的事件: 童年经典回忆 | 从零开始带大家用Python撸一个魔塔小游戏呀(2) 这一期我们会带大家进一步复现我们的魔塔小 ...

  9. 用Python实现一个大数据搜索引擎

    用Python实现一个大数据搜索引擎 搜索是大数据领域里常见的需求.Splunk和ELK分别是该领域在非开源和开源领域里的领导者.本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家 ...

最新文章

  1. 玩转双核CPU:左手画圆,右手画方
  2. Linux系统捕获数据包流程
  3. ASP.NET开发:在用户控件中添加属性
  4. meta name id class 标签的区别
  5. window 2003 linux,一步步从Windows 2003 DNS 移植到Linux下
  6. 首届大湾区 DevOps/微服务秋季分享会圆满落幕!
  7. ActiveMQ消息优先级:工作原理
  8. Android 带着用户名的SharedPreferences
  9. cvpr2020 人脸检测与识别_Python人脸检测识别实例教程
  10. java学习总结及心得体会
  11. 计算机培训公众号,8款微信公众号编辑器,哪个最好用?
  12. Windows7快捷方式图标丢失的解决方案
  13. 机器学习之降维方法总结
  14. 微信H5 用户调整微信字体 导致使用rem的页面错乱
  15. 虚拟机恢复初始化设置
  16. 深入理解MySQL(2):详谈索引结构
  17. C# WPF时钟表盘 及设置闹钟
  18. 毕设 JAVA.JSP二手车交易系统论文
  19. 凹凸世界服务器维护到几点,凹凸世界手游2021年7月21日版本更新停服维护公告_凹凸世界手游2021年7月21日更新了什么_菜鸟游戏网...
  20. 人与人之间相处的原则

热门文章

  1. 风变python小课 基础语法12 作业1_菜鸟的风变编程Python小课之路,这么学编程也可以?...
  2. MySQL表碎片化(Table Fragmentation)以及处理
  3. mybatisplus where语句里面的条件用括号括起来
  4. Visual C++——获取屏幕大小、窗口大小、对话框大小和位置、控件大小和位置
  5. Fibonacci in the Pocket
  6. 2019中山大学程序设计竞赛
  7. Minimum Triangulation
  8. Polycarp's New Job
  9. Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】
  10. Fragment的setUserVisibleHint方法实现延时加载