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 相关文章推荐
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
神经网络相关之基础概念的讲解
Dec 29 Python
python多进程读图提取特征存npy
May 21 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
pycharm 2020 1.1的安装流程
Sep 29 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
Python如何使用循环结构和分支结构
Apr 13 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截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
浅谈Python程序与C++程序的联合使用
2015/04/07 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
Python Json数据文件操作原理解析
2020/05/09 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
python两种注释用法的示例
2020/10/09 Python
Expedia英国:全球最大的在线旅游公司
2017/09/07 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
乔迁之喜答谢词
2015/01/05 职场文书
八月迷情观后感
2015/06/11 职场文书
2016教师政治学习心得体会
2016/01/23 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
python 标准库原理与用法详解之os.path篇
2021/10/24 Python