From 2d1c8f7d19e1f8d38a8a35afc6b9e5f064bf78b1 Mon Sep 17 00:00:00 2001 From: Wolfgang Nowak Date: Sun, 19 Nov 2023 17:29:23 +0100 Subject: [PATCH] Funktioniert, mit Meispiel --- parabelfunc.py | 61 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/parabelfunc.py b/parabelfunc.py index 4684850..4c18d7b 100755 --- a/parabelfunc.py +++ b/parabelfunc.py @@ -6,7 +6,7 @@ import os, sys, termios, tty, time, random from math import sin, cos, tan, sqrt from time import sleep - +###################################################### def berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe): x = 0 y = x**2 @@ -17,6 +17,7 @@ def berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigk jupiter = 24 gravitation = erde startwinkel = startwinkel * deg2rad + cowlength = len(cow) + 1 # Calculate time of flight flugdauer = startgeschwindigkeit * sin(startwinkel) / gravitation @@ -38,33 +39,63 @@ def berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigk y = (-(gravitation / (2 * startgeschwindigkeit**2 * cos(startwinkel) ** 2)) * x**2) + (tan(startwinkel) * x + starthoehe) # Ensure, that nothing has to be drawn outside the viewport - if y < ymax and y > ymin: + if y <= ymax and y >= ymin: # Stash awa the coordinates into scala, which will be returned - scala += [x, int(y * 10 + 5) / 10] + scala += [x, int((y * 100 + 50) / 100)] else: - scala += [x, 0] + scala += [0, 0] xold = x return scala +###################################################### # berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe): +# set position of cursor +def curpos(x, y): + print("\033[%d;%dH" % (ymax - y, x), end="", flush=True) -cow = "🦝" -cowlength = len(cow) -xmax = 157 -ymax = 38 -ymin = 0 -xmin = 0 -xold = xmin + +# Randomly choose a cow +cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️ 🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕" +cowlistlength = len(cows) +cow = cows[random.randint(0, cowlistlength - 1)] # pi is not defined by default pi = 3.1416 deg2rad = pi / 180 + +# Needed: find our screensize. We are in textmode here +termsize_xy = os.get_terminal_size() + +### I m p o r t a n t p a r a m e t e r s ### + +# X-Resolution of the display +xmax = termsize_xy[0] - 1 xsteps = xmax -wurfweite = 0 -startwinkel = 34 -startgeschwindigkeit = 23 +ymax = termsize_xy[1] +ymin = 0 +xmin = 0 +startwinkel = 34 +startgeschwindigkeit = 31 starthoehe = 0 -print(berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe)) +### + +# needed for erasing ol position +xold = xmin +yold = ymin +x = xmin +y = xmin + +# Call the function, which calculates the coordinates) +ergebnis = berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe) + +# here we draw the cow +for count in range(xmin, len(ergebnis), 2): + xold, yold = x, y + x, y = ergebnis[count], ergebnis[count + 1] + curpos(x, y) + print(cow, end="") + curpos(xold, yold) +bla = input("CR please...")