python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

怎么在Python项目中利用Pygame绘制一个时钟

发布时间:2020-11-30 14:24:30

来源:亿速云

阅读:54

作者:Leah

怎么在Python项目中利用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绘制一个时钟问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值