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的Django框架中编写错误提示页面
Jul 22 Python
对Python中type打开文件的方式介绍
Apr 28 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
将Django项目部署到CentOs服务器中
Oct 18 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
Python实现二叉树的常见遍历操作总结【7种方法】
Mar 06 Python
pandas删除指定行详解
Apr 04 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
Oct 14 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
python实现打砖块游戏
Feb 25 Python
python subprocess pipe 实时输出日志的操作
Dec 05 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中Date获取时间不正确怎么办
2008/06/05 PHP
php数组删除元素示例
2014/03/21 PHP
php常量详细解析
2015/10/27 PHP
PHP session 会话处理函数
2016/06/06 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
js资料toString 方法
2007/03/13 Javascript
实现JavaScript中继承的三种方式
2009/10/16 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
Python 流程控制实例代码
2009/09/25 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
centos7之Python3.74安装教程
2019/08/15 Python
python如何从文件读取数据及解析
2019/09/19 Python
Python 私有化操作实例分析
2019/11/21 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
异常和异常类的概念
2014/09/12 面试题
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
师范应届生教师求职信
2013/11/05 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
给全校老师的建议书
2014/03/13 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
学校运动会广播稿
2014/10/11 职场文书
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python