init
This commit is contained in:
commit
b25fb2e930
1 changed files with 77 additions and 0 deletions
77
main.py
Normal file
77
main.py
Normal file
|
@ -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))
|
Loading…
Reference in a new issue