#! /usr/bin/env python import sys from typing import Final from math import pi, cos import turtle amplitude: Final[tuple[float, float]] = (1, 1) # frequent omega: Final[tuple[float, float]] = (3, 11) # phase phi: Final[tuple[float, float]] = (pi/2, 3*pi/4) # Diskretisieren N: Final[int] = 360 step: Final = (2*pi) / N T: Final = [k * step for k in range(N)] points = [( amplitude[0] * cos(omega[0]*t + phi[0]), amplitude[1] * cos(omega[1]*t + phi[1]) ) for t in T ] # Plot with turtle (canvaswidth, canvasheight) = turtle.screensize() point_size = 1.5 turtle.setup(width=canvaswidth + 5*point_size, height=canvaswidth + 5*point_size) # scale up x_factor = (canvaswidth / 2) / amplitude[0] y_factor = (canvasheight / 2) / amplitude[1] print(x_factor, y_factor) # as fast as possible turtle.speed(0) turtle.penup() turtle.pensize(point_size) for p in points: x = x_factor * p[0] y = y_factor * p[1] #turtle.teleport(x, y) #turtle.dot(point_size) turtle.goto(x, y) turtle.pendown() p0 = points[0] turtle.goto(x_factor * p0[0], y_factor * p0[1]) write_to_file = False if write_to_file: output_dir = "../../2024/python-output" image_filename = f"{output_dir}/{sys.argv[0].replace('.py','.eps')}" print(f"save file to {image_filename}") canvas_screen = turtle.getscreen().getcanvas() canvas_screen.postscript(file=image_filename) turtle.done()