Ich bin ein Student einer der Berliner Unis. Als Hausaufgabe haben wir folgende Aufgabe bekommen. Ich möchte anmerken, dass wir in dem Fach bisher nur zwei Rechnerübungen hatten und die Mehrheit von uns in der Vergangenheit nichts mit Programmieren zu tun hatte. Der Stoff, den wir in Rechnerübungen gehabt haben, hilf bei der Hausaufgabe gar nicht. Könnte mir jemand den Ansatz geben, wie man jede Aufgabe machen sollte. Ich erwarte nicht, dass ich die fertige Aufgabe bekomme, ich möchte sie verstehen und einfach erklärt haben. Ich habe bisher nicht mal Funktionen definiert...
Ein Fußball wird von von einem Spieler von dem Mittelpunkt der Torlinie in einer parabelförmigen Bahn auf das Tor des Gegners geschossen. Die Funktion, die diesen Schuss beschreibt, lautet:
Dabei soll folgendes gelten:
• Die Funktion für x-Position lautet: 𝑥(𝑡) = 5,25 𝑡.
• Die Funktion für die y-Position lautet: 𝑦(𝑡) =− 0,365 𝑡^2 + 7,15𝑡.
• Die Funktion für die z-Position lautet: 𝑧(𝑡) =− 0,49 𝑡^2 + 9,9 𝑡.
• Ein Fußballfeld ist 105 m lang und 68 m breit.
• Die Tore befinden sich an den Enden der längeren Strecke und befinden sich genau in der Mitte der kürzeren Strecke.
• Der Radius des Balls beträgt der Einfachheit halber 0.
• Das (gegnerische) Tor gilt nur als getroffen, wenn sich der Ball auf der Torlinie innerhalb der Innenmaße des Tors befindet.
• Jedes Tor ist innen 2,44 m hoch und 7,32 m breit.
• Das Spielfeld gilt dann als verlassen, wenn der Ball ausserhalb der Außenmaße des Spielfeldes ist.
• Wenn der Spieler, der den Ball schießt, in Richtung generisches Tor schaut, dann hat die Aussenecke des Spielfelds zu seiner Rechten auf Bodenhöhe die Koordinaten (0;0;0).
• Beachten Sie die Startposition des Balls!
a) Vorgegebene Funktionen implementieren
Implementieren Sie die vorgegebenen Funktionen 𝑥(𝑡), 𝑦(𝑡) und 𝑧(𝑡) und benutzen Sie diese dann, um eine Funktion 𝑓(𝑡) zu implementieren, die 𝑥(𝑡), 𝑦(𝑡) und 𝑧(𝑡) in eine Matrix zusammenfasst und diese anschließend transponiert. Die Matrix soll am Ende folgende Gestalt haben:
𝑥1 … 𝑥𝑛
M = 𝑦1 … 𝑦𝑛
𝑧1 … 𝑧𝑛
Dabei sind 𝑥1
, …, 𝑥𝑛 die Rückgabewerte von 𝑥(𝑡), usw.
b) Funktionen ausführen
Berechnen Sie insgesamt 50 Positionen des Balls über einen Zeitraum von 20 Sekunden. Diese Samples sollen alle den gleichen zeitlichen Abstand zu einander haben. Speichern Sie diese Positionen in einem numpy Array. Nutzen Sie hierfür Ihren Code aus 1a).
c) Daten auswerten
Berechnen Sie den höchsten Punkt, den der Ball in Ihren Samples erreicht. Implementieren Sie dazu die Funktion „highestPoint“. Geben Sie auf 2 Dezimalstellen genau an wie hoch der Ball flog und zu welchen Zeitpunkt diese Höhe erreicht wurde. Ihre Ausgabe könnte z.B. so aussehen: „Der Ball war bei X m an seinem höchsten Punkt. Er erreicht diesen nach Y Sekunden.“ Benutzen Sie hierfür die „print“-Funktion.
d) Daten auswerten II
Verlässt der Ball zu einem Zeitpunkt seitlich das Spielfeld? Implementieren Sie die Funktion „leavedField“, um diese Frage zu beantworten. Geben Sie die Antwort im ähnlichen Format wie in 1c) aus.
e) Daten plotten
Plotten Sie X-, Y- und Z-Achse des Spielfelds und die Schussbahn des Balls in einem dreidimensionalen Diagramm. Achten Sie auf korrekte Achsenbeschriftung.