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解析html开发库pyquery使用方法
Feb 07 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
python非递归全排列实现方法
Apr 10 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
Python实现简单求解给定整数的质因数算法示例
Mar 25 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
Matplotlib绘制混淆矩阵的实现
May 27 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
Jun 08 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php绘制一条弧线的方法
2015/01/24 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
php实现网页端验证码功能
2017/07/11 PHP
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
JavaScript字符串对象
2017/01/14 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
Python实现的密码强度检测器示例
2017/08/23 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
Django 对象关系映射(ORM)源码详解
2019/08/06 Python
python中栈的原理及实现方法示例
2019/11/27 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
仓库主管的岗位职责
2013/12/04 职场文书
员工培训邀请函
2014/02/02 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
教师节感谢信
2015/01/22 职场文书