#!/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 get_best_size(): if screensize[0] <= screensize[1]: best = screensize[0] else: best = screensize[1] 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,best_radios)#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) # draw a rot pygame.draw.line(screen,(255,0,0),start_pos,(start_pos[0]+a,start_pos[1]),3) # 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) get_debug_text() pygame.display.flip() clock.tick(30) #sleep(1) winkel += 1