From 3b1a8af39d6bf977a95cdb70e75d602e33e09a24 Mon Sep 17 00:00:00 2001 From: kachelto100370 Date: Thu, 23 Apr 2026 15:07:56 +0200 Subject: [PATCH] bissl Fortschritt, ich will aber erst Aufg 3 machen --- 4_Flugkurve02/code/flugkurve02.cpp | 75 ++++++++++++++---------------- 4_Flugkurve02/code/flugkurve02.h | 19 ++++++++ 2 files changed, 53 insertions(+), 41 deletions(-) create mode 100644 4_Flugkurve02/code/flugkurve02.h diff --git a/4_Flugkurve02/code/flugkurve02.cpp b/4_Flugkurve02/code/flugkurve02.cpp index 16b80f4..103ed47 100644 --- a/4_Flugkurve02/code/flugkurve02.cpp +++ b/4_Flugkurve02/code/flugkurve02.cpp @@ -1,45 +1,38 @@ +#include "flugkurve02.h" #include using namespace std; -int main() -{ - // Körper: - float masse = 10; // [kg] - float xPosition = 0; // [m] - float yPosition = 0; // [m] - float xGeschwindigkeit = 10; // [m/s] - float yGeschwindigkeit = 10; // [m/s] - - // Parametrierung der auf den Körper wirkende Kräfte: - const float X_BESCHLEUNIGUNG_GRAVITATION = 0; // [m/s^2] - const float Y_BESCHLEUNIGUNG_GRAVITATION = -9.81; // [m/s^2] - const float REIBUNGSKOEFFIZIENT = -5; // [kg/s] - - // Sorgt dafür, dass 2 Nachkommastellen angezeigt werden: - cout << fixed; - cout.precision(2); - - // Simulation: - const float dt = 0.1; // [s] - for(;;) - { - cout << "(" << xPosition << "," << yPosition << ")" << endl; - - // Berechnung der Beschleunigung aus der Kraft - float xBeschleunigung = xGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + X_BESCHLEUNIGUNG_GRAVITATION; - float yBeschleunigung = yGeschwindigkeit * REIBUNGSKOEFFIZIENT / masse + Y_BESCHLEUNIGUNG_GRAVITATION; - - // Ermittlung der neuen Geschwindigkeit - xGeschwindigkeit += dt * xBeschleunigung; - yGeschwindigkeit += dt * yBeschleunigung; - - // Ermittlung der neuen Position - xPosition += dt * xGeschwindigkeit; - yPosition += dt * yGeschwindigkeit; - - if(yPosition<=0) - { - break; - } - } +Vektor mulVektor(const Vektor &vec, const float &skalar){ + Vektor ergebnis = {vec.x * num, vec.y * num}; + return ergebnis; +} + +Vektor addVektor(Vektor vec1, Vektor vec2) { + Vektor erg = {vec1.x + vec2.x, vec1.y + vec2.y}; + return erg; +} + +Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) { + + // Berechnung der Beschleunigung aus der Kraft + float xBeschleunigung = gesamtkraft.x / korp.masse; + float yBeschleunigung = gesamtkraft.y / korp.masse; + + // Ermittlung der neuen Geschwindigkeit + korp.geschwindigkeit.x += dt * xBeschleunigung; + korp.geschwindigkeit.y += dt * yBeschleunigung; + + // Ermittlung der neuen Position + korp.position.x += dt * korp.geschwindigkeit.x; + korp.position.y += dt * korp.geschwindigkeit.y; + return korp; +} + +void ausgabeKoerper(Koerper korp){ + cout << "x = " << korp.position.x << "y = " << korp.position.y; +} + +void ausgabeVektor(Vektor vec){ + cout << "x = " << vec.x << endl; + cout << "y = " << vec.y << endl; } diff --git a/4_Flugkurve02/code/flugkurve02.h b/4_Flugkurve02/code/flugkurve02.h new file mode 100644 index 0000000..e742c35 --- /dev/null +++ b/4_Flugkurve02/code/flugkurve02.h @@ -0,0 +1,19 @@ +#pragma once + +// Parametrierung der auf den Körper wirkende Kräfte: +struct Vektor { + const float x; // [m/s^2] + const float y; // [m/s^2] +}; +// Körper: +struct Koerper { + float masse; // [kg] + Vektor position; + Vektor geschwindigkeit; +}; + +Vektor addVektor(Vektor vec1, Vektor vec2); +Vektor mulVektor(Vektor vec, float skalar); +Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt); +void ausgabeKoerper(Koerper korp); +void ausgabeVektor(Vektor vec);