Aufgabe 2 fertig

This commit is contained in:
Tobias Kachel 2026-04-22 14:50:04 +02:00
parent 7618246a5b
commit be77aebb25
3 changed files with 27 additions and 38 deletions

BIN
2_Flugkurve01/code/flugkurve Executable file

Binary file not shown.

View File

@ -1,7 +1,7 @@
#include "flugkurve01.h" #include "flugkurve01.h"
#include <iostream> #include <iostream>
using namespace std; using namespace std;
#define Y_BESCHLEUNIGUNG_GRAVITATION 9.81
Vektor mulVektor(Vektor vec, float num) { Vektor mulVektor(Vektor vec, float num) {
Vektor ergebnis = {vec.x * num, vec.y * num}; Vektor ergebnis = {vec.x * num, vec.y * num};
return ergebnis; return ergebnis;
@ -13,19 +13,10 @@ Vektor addVektor(Vektor vec1, Vektor vec2) {
} }
Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) { Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) {
cout << fixed;
cout.precision(2);
// Simulation:
for (;;) {
cout << "(" << korp.position.x << "," << korp.position.y << ")" << endl;
// Berechnung der Beschleunigung aus der Kraft // Berechnung der Beschleunigung aus der Kraft
float xBeschleunigung = float xBeschleunigung = gesamtkraft.x / korp.masse;
korp.geschwindigkeit.x * korp.REIBUNGSKOEFFIZIENT / korp.masse + float yBeschleunigung = gesamtkraft.y / korp.masse;
korp.REIBUNGSKOEFFIZIENT;
float yBeschleunigung =
korp.geschwindigkeit.y * korp.REIBUNGSKOEFFIZIENT / korp.masse +
Y_BESCHLEUNIGUNG_GRAVITATION;
// Ermittlung der neuen Geschwindigkeit // Ermittlung der neuen Geschwindigkeit
korp.geschwindigkeit.x += dt * xBeschleunigung; korp.geschwindigkeit.x += dt * xBeschleunigung;
@ -34,10 +25,14 @@ Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt) {
// Ermittlung der neuen Position // Ermittlung der neuen Position
korp.position.x += dt * korp.geschwindigkeit.x; korp.position.x += dt * korp.geschwindigkeit.x;
korp.position.y += dt * korp.geschwindigkeit.y; korp.position.y += dt * korp.geschwindigkeit.y;
if (korp.position.y <= 0) {
break;
}
}
return korp; 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;
}

View File

@ -1,25 +1,19 @@
#pragma once #pragma once
// Körper:
struct koordinaten{
int x, y;
};
struct Koerper{
float masse = 10; // [kg]
koordinaten position;
koordinaten geschwindigkeit;
const float REIBUNGSKOEFFIZIENT; // [kg/s]
};
// Parametrierung der auf den Körper wirkende Kräfte: // Parametrierung der auf den Körper wirkende Kräfte:
struct Vektor { struct Vektor {
const float x; // [m/s^2] float x; // [m/s^2]
const float y; // [m/s^2] float y; // [m/s^2]
};
// Körper:
struct Koerper {
float masse = 10; // [kg]
Vektor position;
Vektor geschwindigkeit;
}; };
Vektor mulVektor(Vektor vec, float skalar);
Vektor addVektor(Vektor vec1, Vektor vec2); Vektor addVektor(Vektor vec1, Vektor vec2);
Vektor mulVektor(Vektor vec, float skalar);
Koerper bewegeKoerper(Koerper zuBewegen, Vektor bewegung, int timeSteps); Koerper bewegeKoerper(Koerper korp, Vektor gesamtkraft, float dt);
void ausgabeKoerper(Koerper korp);
void ausgabeVektor(Vektor vec);