#!/usr/bin/python3 from math import sin,cos,radians from time import sleep import pygame def berechne_dreieck(alpha,c): alpha = radians(alpha) a = cos(alpha)*c# x b = -sin(alpha)*c# y return a,b def get_debug_text(): def text(text,line_counter): debug_text = default_font.render(str(text), True, (0,0,0)) screen.blit(debug_text,(0,line_counter*default_font.get_height())) line_counter = 1 globalvars = globals() for a in globalvars: text(f"{str(a)} = {str(globalvars[a])}",line_counter) line_counter += 1 def centered_text(text=str,pos=tuple,color=tuple): text = default_font.render(str(text), True, color) screen.blit(text,(pos[0]-text.get_width()/2,pos[1])) def get_best_size(): if screensize[0] <= screensize[1]: best = screensize[0] else: best = screensize[0] return best pygame.init() clock = pygame.time.Clock() screen = pygame.display.set_mode([500,500],pygame.RESIZABLE) screensize = pygame.display.get_window_size() default_font = pygame.font.SysFont("sans", 14) start_pos = screensize[0]/2,screensize[1]/2#(10,screensize[1]-10) winkel = 0 best_radios = get_best_size()/2-20 running = True if __name__ == "__main__": while running: screen.fill((255,255,255)) pressed_keys = pygame.key.get_pressed() if pressed_keys[pygame.K_ESCAPE]: exit() if pressed_keys[pygame.K_UP]: winkel += 1 if pressed_keys[pygame.K_DOWN]: winkel -= 1 for event in pygame.event.get(): if event.type == pygame.QUIT: exit() if event.type == pygame.WINDOWRESIZED: screensize = pygame.display.get_window_size() start_pos = screensize[0]/2,screensize[1]/2#(10,screensize[1]-10) screen.fill((0,0,0)) best_radios = get_best_size()/2-20 if winkel >= 360 or winkel <= -1: winkel = 0 a,b = berechne_dreieck(winkel,200)#screensize[0]*screensize[1]) end_pos = start_pos[0]+a,start_pos[1]+b # draw c schwarz pygame.draw.line(screen,(0,0,0),start_pos,end_pos,3) centered_text("c",(end_pos[0]+10,end_pos[1]+10),(0,0,0)) # draw a rot pygame.draw.line(screen,(255,0,0),start_pos,(start_pos[0]+a,start_pos[1]),3) centered_text("a",(start_pos[0]+10,start_pos[1]+10),(255,0,0)) # draw b blau pygame.draw.line(screen,(0,0,255),(start_pos[0]+a,start_pos[1]),(start_pos[0]+a,start_pos[1]+b),3) centered_text("b",(start_pos[0]+a+10,start_pos[1]+10),(0,0,255)) get_debug_text() pygame.display.flip() clock.tick(30) #sleep(1) winkel += 1