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使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
Python算法之栈(stack)的实现
Aug 18 Python
Python中使用hashlib模块处理算法的教程
Apr 28 Python
Python日期的加减等操作的示例
Aug 15 Python
python3 发送任意文件邮件的实例
Jan 23 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
pytorch使用 to 进行类型转换方式
Jan 08 Python
Pycharm和Idea支持的vim插件的方法
Feb 21 Python
python网络编程之五子棋游戏
May 14 Python
django 模型字段设置默认值代码
Jul 15 Python
python开发一款翻译工具
Oct 10 Python
详解python模块pychartdir安装及导入问题
Oct 22 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
javascript 简练的几个函数
2009/08/29 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
axios的拦截请求与响应方法
2018/08/11 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
Python函数基本使用原理详解
2020/03/19 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
大学生入党推荐书范文
2014/05/17 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
优秀家长自荐材料
2014/08/26 职场文书
给领导的感谢信范文
2015/01/23 职场文书
病假证明模板
2015/06/19 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
Docker下安装Oracle19c
2022/04/13 Servers