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 collections模块实例讲解
Apr 07 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
pandas Dataframe行列读取的实例
Jun 08 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
详解爬虫被封的问题
Apr 23 Python
python对象与json相互转换的方法
May 07 Python
python实现替换word中的关键文字(使用通配符)
Feb 13 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
python计算Content-MD5并获取文件的Content-MD5值方式
Apr 03 Python
基于Python编写一个监控CPU的应用系统
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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
JavaScript中的null和undefined区别介绍
2015/01/01 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python实现统计代码行的方法分析
2017/07/12 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Python2与Python3的区别详解
2020/02/09 Python
python 等差数列末项计算方式
2020/05/03 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Python requests接口测试实现代码
2020/09/08 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
动态密码技术
2012/10/18 面试题
婚庆公司的创业计划书
2014/01/22 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
交通事故和解协议书
2015/01/27 职场文书
销售员自我评价
2015/03/11 职场文书
2015年仓库工作总结
2015/04/09 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
MyBatis 动态SQL全面详解
2021/10/05 MySQL