commit b25fb2e93077735137ef462102865ae28dc30df3 Author: Megamichi Date: Fri Mar 22 19:01:18 2024 +0100 init diff --git a/main.py b/main.py new file mode 100644 index 0000000..4b8b102 --- /dev/null +++ b/main.py @@ -0,0 +1,77 @@ +#!/usr/bin/python3 +import pygame +from math import radians,cos,sin +pygame.init() +## funktionen +def get_debug_text(): + def text(text,line_counter): + debug_text = default_font.render(str(text), True, (255,255,255)) + 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 +## klassen + +## variablen +screen = pygame.display.set_mode((300,300),pygame.RESIZABLE) +pygame.display.set_caption("Lissajous Figures") +screensize = pygame.display.get_window_size() +clock = pygame.time.Clock() +default_font = pygame.font.SysFont("sans", 14) + +mitte_pos = screensize[0]//2,screensize[1]//2 +frequ1 = 1 +frequ2 = 10 + +phasenverschiebung = 90 + +scale = (get_best_size()-10)//2 + +preview_pos = 0,0 +show_debug = False +running = True +if __name__ == "__main__": + while running: + ## key managment + pressed_keys = pygame.key.get_pressed() + + if pressed_keys[pygame.K_ESCAPE]: + exit() + if pressed_keys[pygame.K_d] and not preview_pressed_keys[pygame.K_d]: + show_debug = not show_debug + + preview_pressed_keys = pressed_keys + ## event managment + for event in pygame.event.get(): + if event.type == pygame.QUIT: + exit() + if event.type == pygame.WINDOWRESIZED: + screensize = pygame.display.get_window_size() + mitte_pos = screensize[0]//2,screensize[1]//2 + scale = (get_best_size()-10)//2 + + if show_debug: + get_debug_text() + phasenverschiebung += 0.1 + if phasenverschiebung >= 360: + phasenverschiebung = 0 + for r in range(360): + pos = (sin(radians(frequ1*(r+phasenverschiebung)))*scale)+mitte_pos[0],(cos(radians(frequ2*r))*scale)+mitte_pos[1] + pygame.draw.line(screen,(0,255,0),preview_pos,pos,3) + preview_pos = pos + #pygame.draw.circle(screen,(255,0,0),pos,2) + frequ1 = pygame.mouse.get_pos()[0]//5 + frequ2 = pygame.mouse.get_pos()[1]//5 + ## bildschirm aktuallisierung + pygame.display.flip() + clock.tick(60) + screen.fill((0,0,0)) \ No newline at end of file