From 84055e4d0cb58f94ac8e6be28885c7d51d13ef3a Mon Sep 17 00:00:00 2001 From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de> Date: Mon, 13 May 2024 02:54:33 +0200 Subject: [PATCH] Example for functions --- python-grundlage/Lissajous-turtle.py | 35 +++++++++++++++++++++++++---------- 1 files changed, 25 insertions(+), 10 deletions(-) diff --git a/python-grundlage/Lissajous-turtle.py b/python-grundlage/Lissajous-turtle.py index 62a1d4a..9f44134 100644 --- a/python-grundlage/Lissajous-turtle.py +++ b/python-grundlage/Lissajous-turtle.py @@ -1,19 +1,19 @@ #! /usr/bin/env python - +import sys from typing import Final from math import pi, cos import turtle -amplitude: tuple[float, float] = (1, 1) +amplitude: Final[tuple[float, float]] = (1, 1) # frequent -omega: tuple[float, float] = (-1, -2) +omega: Final[tuple[float, float]] = (3, 11) # phase -phi: tuple[float, float] = (pi/2, 3*pi/4) +phi: Final[tuple[float, float]] = (pi/2, 3*pi/4) # Diskretisieren N: Final[int] = 360 -step = (2*pi) / N -T = [k * step for k in range(N)] +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]) @@ -22,18 +22,33 @@ # Plot with turtle (canvaswidth, canvasheight) = turtle.screensize() -point_size = 3 +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.pendown() +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.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() -- Gitblit v1.10.0-SNAPSHOT