Python使用Pygame繪制時鐘
更新時間:2020年11月29日 17:06:48 作者:浩瀚藍天dep
這篇文章主要為大家詳細介紹了Python使用Pygame繪制時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Python使用Pygame繪制時鐘的具體代碼,供大家參考,具體內(nèi)容如下
前提條件:
需要安裝pygame
功能:
1.初始化界面顯示一個時鐘界面
2.根據(jù)當(dāng)前的時間實現(xiàn)時針、分針、秒針的移動
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))
# 標(biāo)題
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)
# 繪制數(shù)字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 # 獲取當(dāng)前時間的小時
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 # 獲取當(dāng)前時間的分鐘
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 # 獲取當(dāng)前時間的秒數(shù)
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()
運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
正確理解Python中if __name__ == ''__main__''
今天小編就為大家分享一篇關(guān)于正確理解Python中if __name__ == '__main__' ,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
python 在某.py文件中調(diào)用其他.py內(nèi)的函數(shù)的方法
這篇文章主要介紹了python 在某.py文件中調(diào)用其他.py內(nèi)的函數(shù)的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
Caffe卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層及參數(shù)
這篇文章主要為大家介紹了Caffe卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)層及參數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06

