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