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实现的Google IP 可用性检测脚本
Apr 23 Python
Python psutil模块简单使用实例
Apr 28 Python
Python 功能和特点(新手必学)
Dec 30 Python
python制作企业邮箱的爆破脚本
Oct 05 Python
python算法表示概念扫盲教程
Apr 13 Python
python在非root权限下的安装方法
Jan 23 Python
Python docx库用法示例分析
Feb 16 Python
Python I/O与进程的详细讲解
Mar 08 Python
Python深拷贝与浅拷贝用法实例分析
May 05 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 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(6) 面向对象
2010/02/16 PHP
php学习笔记 类的声明与对象实例化
2011/06/13 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
Prototype的Class.create函数解析
2011/09/22 Javascript
javascript 实现map集合
2015/04/03 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
python中的错误处理
2016/04/10 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
高中数学教学反思
2014/01/30 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
中班教师个人总结
2015/02/05 职场文书
办公经费申请报告
2015/05/15 职场文书
建房合同协议书
2016/03/21 职场文书