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