Glaube flugkurve01.cpp ist fertig, ich hoffe ich muss nur noch die .h ändern

This commit is contained in:
Tobias Kachel 2026-04-21 23:35:18 +02:00
parent 78de564416
commit 7618246a5b
3 changed files with 48 additions and 56 deletions

3
.gitignore vendored
View File

@ -1 +1,4 @@
1_Grundlagen/code/matrix.exe 1_Grundlagen/code/matrix.exe
.out
.exe
.a

View File

@ -1,43 +1,7 @@
#include <iostream>
#include "flugkurve01.h" #include "flugkurve01.h"
#include <iostream>
using namespace std; using namespace std;
#define Y_BESCHLEUNIGUNG_GRAVITATION 9.81
int main()
{
// 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(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;
@ -49,9 +13,31 @@ 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
float xBeschleunigung =
korp.geschwindigkeit.x * korp.REIBUNGSKOEFFIZIENT / korp.masse +
korp.REIBUNGSKOEFFIZIENT;
float yBeschleunigung =
korp.geschwindigkeit.y * korp.REIBUNGSKOEFFIZIENT / korp.masse +
Y_BESCHLEUNIGUNG_GRAVITATION;
// 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;
if (korp.position.y <= 0) {
break;
}
}
return korp;
} }

View File

@ -1,15 +1,16 @@
#pragma once #pragma once
// Körper: // Körper:
struct koordinaten{
int x, y;
};
struct Koerper{ struct Koerper{
float masse = 10; // [kg] float masse = 10; // [kg]
float xPosition; // [m] koordinaten position;
float yPosition; // [m] koordinaten geschwindigkeit;
float position[2] = {xPosition, yPosition};
float xGeschwindigkeit; // [m/s]
float yGeschwindigkeit; // [m/s]
float geschwindigkeit[2] = {xGeschwindigkeit,yGeschwindigkeit};
const float REIBUNGSKOEFFIZIENT; // [kg/s] 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] const float x; // [m/s^2]
@ -20,3 +21,5 @@
Vektor mulVektor(Vektor vec, float skalar); Vektor mulVektor(Vektor vec, float skalar);
Vektor addVektor(Vektor vec1, Vektor vec2); Vektor addVektor(Vektor vec1, Vektor vec2);
Koerper bewegeKoerper(Koerper zuBewegen, Vektor bewegung, int timeSteps);