怎么在Python项目中利用Pygame绘制一个时钟
发布时间:-11-30 14:24:30
来源:亿速云
阅读:54
作者:Leah
怎么在Python项目中利用Pygame绘制一个时钟?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
功能:
1.初始化界面显示一个时钟界面
2.根据当前的时间实现时针、分针、秒针的移动importpygame,sys,random,math
fromdatetimeimportdatetime
frompygame.localsimport*
defprint_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)
whileTrue:
foreventinpygame.event.get():
ifevent.type==QUIT:
sys.exit()
keys=pygame.key.get_pressed()
ifkeys[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
foriinrange(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绘制一个时钟问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。