Python使用Pygame繪製時鐘
阿新 • • 發佈:2020-11-30
本文例項為大家分享了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,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),(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,(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,255),(pos_x + seconds_x,+ pos_y + seconds_y),4) # 覆蓋圓心 pygame.draw.circle(screen,10) pygame.display.update()
執行結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。