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
.out
.exe
.a

View File

@ -1,57 +1,43 @@
#include <iostream>
#include "flugkurve01.h"
#include <iostream>
using namespace std;
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 ergebnis = {vec.x * num, vec.y * num};
return ergebnis;
#define Y_BESCHLEUNIGUNG_GRAVITATION 9.81
Vektor mulVektor(Vektor vec, float num) {
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;
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){
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
// Körper:
struct koordinaten{
int x, y;
};
struct Koerper{
float masse = 10; // [kg]
float xPosition; // [m]
float yPosition; // [m]
float position[2] = {xPosition, yPosition};
float xGeschwindigkeit; // [m/s]
float yGeschwindigkeit; // [m/s]
float geschwindigkeit[2] = {xGeschwindigkeit,yGeschwindigkeit};
const float REIBUNGSKOEFFIZIENT; // [kg/s]
koordinaten position;
koordinaten geschwindigkeit;
const float REIBUNGSKOEFFIZIENT; // [kg/s]
};
// Parametrierung der auf den Körper wirkende Kräfte:
struct Vektor{
const float x; // [m/s^2]
@ -20,3 +21,5 @@
Vektor mulVektor(Vektor vec, float skalar);
Vektor addVektor(Vektor vec1, Vektor vec2);
Koerper bewegeKoerper(Koerper zuBewegen, Vektor bewegung, int timeSteps);