Python使用Pygame绘制时钟


Posted in Python onNovember 29, 2020

本文实例为大家分享了Python使用Pygame绘制时钟的具体代码,供大家参考,具体内容如下

前提条件:

需要安装pygame

功能:

1.初始化界面显示一个时钟界面

2.根据当前的时间实现时针、分针、秒针的移动

import pygame, sys, random, math
from datetime import datetime
from pygame.locals import *
 
 
def print_text(font, x, y, text, color=(255, 255, 255)):
 img_text = font.render(text, True, color)
 screen.blit(img_text, (x, y))
 
 
pygame.init()
 
# 屏幕大小
screen = pygame.display.set_mode((600, 500))
# 标题
pygame.display.set_caption("时钟")
# 字体
font1 = pygame.font.Font(None, 24)
# 圆心位置
pos_x = 300
pos_y = 250
# 圆的半径
radius = 250
r = random.randint(0, 255)
g = random.randint(0, 255)
b = random.randint(0, 255)
 
while True:
 for event in pygame.event.get():
  if event.type == QUIT:
   sys.exit()
 keys = pygame.key.get_pressed()
 if keys[K_ESCAPE]:
  sys.exit()
 screen.fill((0, 0, 100))
 color = r, g, b
 pygame.draw.circle(screen, color, (pos_x, pos_y), radius, 6)
 # 绘制数字1-12
 for i in range(1, 13):
  angle = math.radians((360 / 12) * i - 90)
  x = math.cos(angle) * (radius - 20) - 10
  y = math.sin(angle) * (radius - 20) - 10
  print_text(font1, pos_x + x, pos_y + y, str(i))
 # 绘制时针
 hour = datetime.today().hour % 12 # 获取当前时间的小时
 hour_angle = math.radians((360 / 12) * hour - 90)
 hour_x = math.cos(hour_angle) * (radius - 90)
 hour_y = math.sin(hour_angle) * (radius - 90)
 pygame.draw.line(screen, (255, 0, 0), (pos_x, pos_y), (pos_x + hour_x, pos_y + hour_y), 12)
 # 绘制分针
 minutes = datetime.today().minute # 获取当前时间的分钟
 minutes_angle = math.radians((360 / 60) * minutes - 90)
 minutes_x = math.cos(minutes_angle) * (radius - 70)
 minutes_y = math.sin(minutes_angle) * (radius - 70)
 pygame.draw.line(screen, (0, 255, 0), (pos_x, pos_y), (pos_x + minutes_x, pos_y + minutes_y), 8)
 # 绘制秒针
 seconds = datetime.today().second # 获取当前时间的秒数
 seconds_angle = math.radians((360 / 60) * seconds - 90)
 seconds_x = math.cos(seconds_angle) * (radius - 30)
 seconds_y = math.sin(seconds_angle) * (radius - 30)
 pygame.draw.line(screen, (0, 0, 255), (pos_x, pos_y), (pos_x + seconds_x, + pos_y + seconds_y), 4)
 # 覆盖圆心
 pygame.draw.circle(screen, (255, 255, 255), (pos_x, pos_y), 10)
 
 pygame.display.update()

运行结果:

Python使用Pygame绘制时钟

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

Python 相关文章推荐
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
python实现按任意键继续执行程序
Dec 30 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
python 对字典按照value进行排序的方法
May 09 Python
详解python 爬取12306验证码
May 10 Python
python标记语句块使用方法总结
Aug 05 Python
在Python中通过threshold创建mask方式
Feb 19 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 Python
详解pandas赋值失败问题解决
Nov 29 #Python
python 获取剪切板内容的两种方法
Nov 28 #Python
快速创建python 虚拟环境
Nov 28 #Python
Python基于Webhook实现github自动化部署
Nov 28 #Python
Django-simple-captcha验证码包使用方法详解
Nov 28 #Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 #Python
python 用Matplotlib作图中有多个Y轴
Nov 28 #Python
You might like
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue实现购物车加减
2020/05/30 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
python中字典dict常用操作方法实例总结
2015/04/04 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python实现计算最小编辑距离
2016/03/17 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
大学校庆策划书
2014/01/31 职场文书
中学教师教育感言
2014/02/21 职场文书
无毒社区工作方案
2014/05/23 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
学期个人工作总结
2015/02/13 职场文书
公司人事任命通知
2015/04/20 职场文书
小学生手册家长意见
2015/06/03 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
Python打包为exe详细教程
2021/05/18 Python
Python爬取某拍短视频
2021/06/11 Python
浅谈Redis中的RDB快照
2021/06/29 Redis