From fd66402c90a63cf8ce455c3614b9160884f74c61 Mon Sep 17 00:00:00 2001
From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de>
Date: Wed, 11 Jun 2025 16:39:08 +0200
Subject: [PATCH] Vorlesung 10.6
---
polymonial/polynomial.py | 27 +++++++++++++
geoturtle-inheritance/plotsquare.py | 13 ++++++
polymonial/main.py | 0
geoturtle-inheritance/geoturtle.py | 9 ++++
polymonial/polynomial_test.py | 15 ++++++-
polymonial/pyproject.toml | 9 ++++
6 files changed, 70 insertions(+), 3 deletions(-)
diff --git a/geoturtle-inheritance/geoturtle.py b/geoturtle-inheritance/geoturtle.py
new file mode 100644
index 0000000..6c2f31c
--- /dev/null
+++ b/geoturtle-inheritance/geoturtle.py
@@ -0,0 +1,9 @@
+from turtle import Turtle
+
+class GeoTurtle(Turtle):
+
+ def square(self, size:float):
+ for _ in range(4):
+ self.forward(size)
+ self.left(90)
+
diff --git a/geoturtle-inheritance/plotsquare.py b/geoturtle-inheritance/plotsquare.py
new file mode 100644
index 0000000..b056268
--- /dev/null
+++ b/geoturtle-inheritance/plotsquare.py
@@ -0,0 +1,13 @@
+from geoturtle import GeoTurtle
+
+anna = GeoTurtle()
+anna.forward(100)
+anna.left(30)
+anna.square(50)
+
+paul = GeoTurtle()
+paul.back(100)
+paul.right(30)
+paul.square(50)
+
+anna.screen.mainloop()
diff --git a/polymonial/main.py b/polymonial/main.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/polymonial/main.py
diff --git a/polymonial/polynomial.py b/polymonial/polynomial.py
index 2ca4f73..5ea6a47 100644
--- a/polymonial/polynomial.py
+++ b/polymonial/polynomial.py
@@ -1,3 +1,6 @@
+#from turtle import Turtle
+import turtle
+
class Polynomial:
def __init__(self, *argv: float):
if len(argv) < 1:
@@ -47,4 +50,26 @@
coe.append(f'{c}')
return ' '.join(coe)
-
+def plot_polynomial(t:turtle.Turtle, p:Polynomial, width=500, height=500):
+ x_value = []
+ y_value = []
+ n = 9
+ delta = 2 * width / (n-1)
+ x0 = -width
+ for i in range(0, n):
+ y0 = p.evaluate(x0)[0]
+ x_value.append(x0)
+ y_value.append(y0)
+ print(x0, y0)
+ x0 = x0 + delta
+ y_min = min(y_value)
+ y_max = max(y_value)
+ m = height - (2*height)/(y_max - y_min) * y_max
+ w = lambda y : 2*height/(y_max - y_min) * y + m
+ for i in range(0, n):
+ x = x_value[i]
+ y = y_value[i]
+ y = w(y)
+ print(x,y)
+ t.goto(x,y)
+ pass
diff --git a/polymonial/polynomial_test.py b/polymonial/polynomial_test.py
index 2fa1f53..7d5dbd9 100644
--- a/polymonial/polynomial_test.py
+++ b/polymonial/polynomial_test.py
@@ -1,4 +1,6 @@
-from polynomial import Polynomial
+from polynomial import Polynomial, plot_polynomial
+import turtle
+
EPSILON = 0.001
def test_polynomial_representation():
@@ -46,6 +48,15 @@
assert abs(pc - ec) < EPSILON
+def GGGGGG_plot_polynomial():
+ p = Polynomial(0, 0, 1)
+ t = turtle.Turtle()
+ width,height = 1000,1000
+ turtle.screensize(width,height)
+ plot_polynomial(t, p, width=width / 2, height=height / 2)
+ t.screen.mainloop()
+
if __name__ == "__main__":
#test_evaluate_2()
- test_polynomial_add()
\ No newline at end of file
+ #test_plot_polynomial()
+ pass
\ No newline at end of file
diff --git a/polymonial/pyproject.toml b/polymonial/pyproject.toml
new file mode 100644
index 0000000..ff8d4c8
--- /dev/null
+++ b/polymonial/pyproject.toml
@@ -0,0 +1,9 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "polynomial"
+version = "0.0.1"
+
+
--
Gitblit v1.10.0