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