first commit
This commit is contained in:
commit
5df22bd0de
|
@ -0,0 +1,58 @@
|
|||
import pygame
|
||||
import datetime
|
||||
import math
|
||||
|
||||
def draw_number_hand(screen, value, max_value, center, length, thickness, color, rep):
|
||||
angle = value / max_value * 360
|
||||
angle_rad = math.radians(angle - 90) # Adjust by 90 degrees to align with clock
|
||||
|
||||
# Draw the hand as repeated numbers
|
||||
for i in range(1, rep): # number of repetitions
|
||||
offset = length / rep * i
|
||||
x = center[0] + offset * math.cos(angle_rad)
|
||||
y = center[1] + offset * math.sin(angle_rad)
|
||||
rendered_text = font.render(str(value), True, color)
|
||||
text_rect = rendered_text.get_rect(center=(x, y))
|
||||
screen.blit(rendered_text, text_rect)
|
||||
|
||||
# Definitions
|
||||
size = 500
|
||||
center = (size/2, size/2)
|
||||
hour_hand_length = 200
|
||||
minute_hand_length = 250
|
||||
second_hand_length = 270
|
||||
hand_thickness = 3
|
||||
|
||||
# Initialize Pygame and Window
|
||||
pygame.init()
|
||||
screen = pygame.display.set_mode([size, size])
|
||||
pygame.display.set_caption("Analog Clock")
|
||||
font = pygame.font.Font(None, 36)
|
||||
|
||||
# Run until the user asks to quit
|
||||
running = True
|
||||
while running:
|
||||
# background
|
||||
screen.fill((255, 255, 255))
|
||||
|
||||
# Get current time
|
||||
now = datetime.datetime.now()
|
||||
|
||||
# Draw the clock hands
|
||||
draw_number_hand(screen, now.second, 60, center, second_hand_length, hand_thickness, (0, 0, 255),8)
|
||||
draw_number_hand(screen, now.minute, 60, center, minute_hand_length, hand_thickness, (0, 255, 0),8)
|
||||
draw_number_hand(screen, now.hour, 12, center, hour_hand_length, hand_thickness, (255, 0, 0), 6)
|
||||
|
||||
# Update the display
|
||||
pygame.display.flip()
|
||||
|
||||
# Check for the quit event
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
running = False
|
||||
|
||||
# 1 FPS
|
||||
pygame.time.Clock().tick(60)
|
||||
|
||||
# Quit
|
||||
pygame.quit()
|
Loading…
Reference in New Issue