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程序的执行原理
Apr 11 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
python使用mysql数据库示例代码
May 21 Python
Python中Numpy mat的使用详解
May 24 Python
Python获取时间戳代码实例
Sep 24 Python
python模块常用用法实例详解
Oct 17 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
Python3如何在服务器打印资产信息
Aug 27 Python
python定时截屏实现
Nov 02 Python
详解anaconda安装步骤
Nov 23 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
2019/03/27 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
vue配置多页面的实现方法
2018/05/22 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
python保存字符串到文件的方法
2015/07/01 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
python实现数据分析与建模
2019/07/11 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python向图片里添加文字
2019/11/26 Python
pytorch 求网络模型参数实例
2019/12/30 Python
pycharm设置python文件模板信息过程图解
2020/03/10 Python
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
影视艺术学院毕业生自荐信
2013/11/13 职场文书
如何填写个人简历自我评价
2013/12/10 职场文书
法院授权委托书范文
2014/08/02 职场文书
社区综治工作汇报
2014/10/27 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
小学中队委竞选稿
2015/11/20 职场文书
PyTorch的Debug指南
2021/05/07 Python
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL
Python图像处理库PIL详细使用说明
2022/04/06 Python
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android