Parabel als Funktion, aufrufbar, ohne Wiedergabe
This commit is contained in:
parent
cbd60f372d
commit
97762be1fd
1 changed files with 72 additions and 0 deletions
72
parabelfunc.py
Normal file
72
parabelfunc.py
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
# in scala the resulting coordinates will be returned
|
||||||
|
scala = []
|
||||||
|
erde = 9.81
|
||||||
|
mond = 1.6
|
||||||
|
jupiter = 24
|
||||||
|
gravitation = erde
|
||||||
|
starthoehe = 0
|
||||||
|
startwinkel = 26 * deg2rad
|
||||||
|
startgeschwindigkeit = 36
|
||||||
|
loeschen = "y"
|
||||||
|
|
||||||
|
# Calculate time of flight
|
||||||
|
flugdauer = startgeschwindigkeit * sin(startwinkel) / gravitation
|
||||||
|
schlafdauer = flugdauer / xmax
|
||||||
|
# Calculate maximum height
|
||||||
|
hoehe = 0.5 * gravitation * flugdauer**2 + starthoehe
|
||||||
|
|
||||||
|
# calculate length of flight
|
||||||
|
wurfweite = (
|
||||||
|
startgeschwindigkeit
|
||||||
|
* cos(startwinkel)
|
||||||
|
* (startgeschwindigkeit * sin(startwinkel) + sqrt(startgeschwindigkeit**2 * sin(startwinkel) ** 2 + 2 * gravitation * starthoehe))
|
||||||
|
) / gravitation
|
||||||
|
|
||||||
|
# cowlength is 2, if cow is an UTF8-Icon, otherwise 1
|
||||||
|
for x in range(xmin, xsteps - 1, cowlength):
|
||||||
|
# the formula, which generates the y position for the corresponding x, shamelessly ripped from some schoolbook and modified.
|
||||||
|
yold = y
|
||||||
|
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:
|
||||||
|
# Stash awa the coordinates into scala, which will be returned
|
||||||
|
scala += [x, int(y * 10 + 5) / 10]
|
||||||
|
else:
|
||||||
|
scala += [x, 0]
|
||||||
|
|
||||||
|
xold = x
|
||||||
|
|
||||||
|
return scala
|
||||||
|
|
||||||
|
|
||||||
|
# berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe):
|
||||||
|
|
||||||
|
cow = "🦝"
|
||||||
|
cowlength = len(cow)
|
||||||
|
xmax = 157
|
||||||
|
ymax = 38
|
||||||
|
ymin = 0
|
||||||
|
xmin = 0
|
||||||
|
xold = xmin
|
||||||
|
# pi is not defined by default
|
||||||
|
pi = 3.1416
|
||||||
|
deg2rad = pi / 180
|
||||||
|
xsteps = xmax
|
||||||
|
wurfweite = 0
|
||||||
|
startwinkel = (34 / deg2rad,)
|
||||||
|
startgeschwindigkeit = 23
|
||||||
|
starthoehe = 0
|
||||||
|
print(berechneflugbahn(cow, xmin, xmax, ymin, ymax, startwinkel, startgeschwindigkeit, starthoehe))
|
Loading…
Reference in a new issue