Ball Animation
Verfasst: Montag 16. November 2020, 15:25
Guten Tag an alle Programmierer 
Ich bin erst seit sehr kurzer Zeit in der Python Geschichte drinne und habe jetzt ein Modul in meinem Studium(Modelbuldung und Systeme) wo wir python mit JupyterLab programmieren sollen.
Die Aufgabe ist einen Ball in einem x/Y Koordinatensystem fallen zu lassen und dieser soll wieder vom Boden abprallen( in gleichmäßiger geschwindigkeit also ohne Gravitation)
Nun habe ich mit meinem Gruppenpartner große probleme bei der Realisierung. Ich schicke meinen Code mal hier rein vielleicht sieht ja jemand direkt einen Fehler.
import numpy as np
from numpy import pi, sin, cos
import matplotlib.pyplot as plt
from IPython.display import HTML
from matplotlib import animation
# %matplotlib qt
%matplotlib inline
[19:09, 14.11.2020] agah: t_max = 10
v = pi*t_max # Geschwindigkeit in LE/s
frame_rate = 30 # Anzahl der Bilder pro sec
dt = 1. / frame_rate # Zeitdelay zwischen 2 Frames in sec
t = np.arange(0,t_max,dt) # Zeit-Stuetzstellenarray
f = 1/t_max # Frequenz (1 Umlauf in 5s)
omega = 2*pi*f # Kreisfrequenz
#time = np.linspace(0, -10, 10)
y = 0
i = np.zeros(10)
print(i)
[19:09, 14.11.2020] agah: # Erzeuge ein figure-Objekt (so etwas wie eine canvas)
fig = plt.figure(figsize=(5,5))
# Erzeuge ein axes-Objekt (artist) innerhalb der Figure
ax = fig.add_subplot()
#fig, ax = plt.subplots(figsize=(5, 5))
# Definiere die Achsenabschnitte
ax.set_xlim((-1, 1))
ax.set_ylim((-1, 1))
# Definiere die Objekte `point` und `time_text`, die animiert werden sollen
point, = ax.plot([], [],"o", lw=5)
plt.grid()
#y = -0.9 * t
y = np.linspace(0, -1, 10)
# Initialisierungsfunktion für die Animation
def init():
point.set_data([], [])
#time_text.set_text("")
return (point, time_text)
# Animationsfunktion, die sequentiel aufgerufen wird
def animate(t):
y = -0.9 * t
#y = 0.5*sin(omega*t)
x = 0
point.set_data(x, y)
#time_text.set_text(time_template %(t))
return (point, time_text)
anim = animation.FuncAnimation(fig, animate,init_func=init,
frames=t, interval=1./frame_rate*1000.,
blit=True, repeat=False)
# HTML(anim.to_html5_video())
HTML(anim.to_jshtml())
Wird der Code ausgeführt kommt folgende Fehlermeldung: (Fehlermeldung : File "<ipython-input-11-1c5b674931f2>", line 32
point.set_data(x, y)
^
IndentationError: unexpected indent)
Ich bedanke mich schonmal für jede Hilfe
Mfg

Ich bin erst seit sehr kurzer Zeit in der Python Geschichte drinne und habe jetzt ein Modul in meinem Studium(Modelbuldung und Systeme) wo wir python mit JupyterLab programmieren sollen.
Die Aufgabe ist einen Ball in einem x/Y Koordinatensystem fallen zu lassen und dieser soll wieder vom Boden abprallen( in gleichmäßiger geschwindigkeit also ohne Gravitation)
Nun habe ich mit meinem Gruppenpartner große probleme bei der Realisierung. Ich schicke meinen Code mal hier rein vielleicht sieht ja jemand direkt einen Fehler.
import numpy as np
from numpy import pi, sin, cos
import matplotlib.pyplot as plt
from IPython.display import HTML
from matplotlib import animation
# %matplotlib qt
%matplotlib inline
[19:09, 14.11.2020] agah: t_max = 10
v = pi*t_max # Geschwindigkeit in LE/s
frame_rate = 30 # Anzahl der Bilder pro sec
dt = 1. / frame_rate # Zeitdelay zwischen 2 Frames in sec
t = np.arange(0,t_max,dt) # Zeit-Stuetzstellenarray
f = 1/t_max # Frequenz (1 Umlauf in 5s)
omega = 2*pi*f # Kreisfrequenz
#time = np.linspace(0, -10, 10)
y = 0
i = np.zeros(10)
print(i)
[19:09, 14.11.2020] agah: # Erzeuge ein figure-Objekt (so etwas wie eine canvas)
fig = plt.figure(figsize=(5,5))
# Erzeuge ein axes-Objekt (artist) innerhalb der Figure
ax = fig.add_subplot()
#fig, ax = plt.subplots(figsize=(5, 5))
# Definiere die Achsenabschnitte
ax.set_xlim((-1, 1))
ax.set_ylim((-1, 1))
# Definiere die Objekte `point` und `time_text`, die animiert werden sollen
point, = ax.plot([], [],"o", lw=5)
plt.grid()
#y = -0.9 * t
y = np.linspace(0, -1, 10)
# Initialisierungsfunktion für die Animation
def init():
point.set_data([], [])
#time_text.set_text("")
return (point, time_text)
# Animationsfunktion, die sequentiel aufgerufen wird
def animate(t):
y = -0.9 * t
#y = 0.5*sin(omega*t)
x = 0
point.set_data(x, y)
#time_text.set_text(time_template %(t))
return (point, time_text)
anim = animation.FuncAnimation(fig, animate,init_func=init,
frames=t, interval=1./frame_rate*1000.,
blit=True, repeat=False)
# HTML(anim.to_html5_video())
HTML(anim.to_jshtml())
Wird der Code ausgeführt kommt folgende Fehlermeldung: (Fehlermeldung : File "<ipython-input-11-1c5b674931f2>", line 32
point.set_data(x, y)
^
IndentationError: unexpected indent)
Ich bedanke mich schonmal für jede Hilfe
Mfg