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中使用第三方模块的教程
Apr 27 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 Python
python爬虫之百度API调用方法
Jun 11 Python
深入探究Django中的Session与Cookie
Jul 30 Python
python实现桌面壁纸切换功能
Jan 21 Python
对Python3 * 和 ** 运算符详解
Feb 16 Python
浅谈Python基础—判断和循环
Mar 22 Python
使用pip安装python库的多种方式
Jul 31 Python
pymysql 开启调试模式的实现
Sep 24 Python
Pytorch之parameters的使用
Dec 31 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Python持续监听文件变化代码实例
Jul 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
PHP 输出简单动态WAP页面
2009/06/09 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
js 判断 enter 事件
2009/02/12 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
机关作风建设自查报告及整改措施
2014/10/21 职场文书
煤矿安全保证书
2015/02/27 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书