From e95f1821545846d70b82d8aaf7542ec2964f5d96 Mon Sep 17 00:00:00 2001
From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de>
Date: Sun, 12 May 2024 05:11:00 +0200
Subject: [PATCH] add example programm

---
 python-grundlage/Lissajous-turtle.py |   39 +++++++++++++++++++
 python-grundlage/Lissajous-np.py     |   25 ++++++++++++
 2 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/python-grundlage/Lissajous-np.py b/python-grundlage/Lissajous-np.py
new file mode 100644
index 0000000..4460ee5
--- /dev/null
+++ b/python-grundlage/Lissajous-np.py
@@ -0,0 +1,25 @@
+#! /usr/bin/env python
+
+from typing import Final
+import numpy as np
+from numpy import pi
+import matplotlib.pyplot as plt
+
+
+amplitude: tuple[float, float] = (1, 1)
+# frequent
+omega: tuple[float, float] = (-1, -2)
+# phase
+phi: tuple[float, float] = (pi/2, 3*pi/4)
+
+N: Final[int] = 100
+T = np.linspace(0, 2*pi, num=N)
+x = amplitude[0] * np.cos(omega[0]*T + phi[0])
+y = amplitude[1] * np.cos(omega[1]*T + phi[1])
+
+# plot
+fig, ax = plt.subplots()
+ax.plot(x, y, linewidth=2.0)
+
+plt.show()
+
diff --git a/python-grundlage/Lissajous-turtle.py b/python-grundlage/Lissajous-turtle.py
new file mode 100644
index 0000000..62a1d4a
--- /dev/null
+++ b/python-grundlage/Lissajous-turtle.py
@@ -0,0 +1,39 @@
+#! /usr/bin/env python
+
+from typing import Final
+from math import pi, cos
+import turtle
+
+amplitude: tuple[float, float] = (1, 1)
+# frequent
+omega: tuple[float, float] = (-1, -2)
+# phase
+phi: 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)]
+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 = 3
+# 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()
+for p in points:
+    x = x_factor * p[0]
+    y = y_factor * p[1]
+    turtle.teleport(x, y)
+    turtle.dot(point_size)
+
+turtle.done()

--
Gitblit v1.10.0-SNAPSHOT