#include #include #include #include "flugkurve02.h" using namespace std; void function_checks() { // mulVektor Vektor test_vec = {10, 11}; Vektor result = mulVektor(test_vec, -3); assert(fabs(result.x + 30) < 0.1 && "Result must be -30"); assert(fabs(result.y + 33) < 0.1 && "Result must be -33"); cout << "mulVektor erfolgreich" << endl; // addVektor Vektor test_vec_2 = {-10, 31}; result = addVektor(test_vec, test_vec_2); assert(fabs(result.x + 0) < 0.1 && "Result must be 0"); assert(fabs(result.y - 42) < 0.1 && "Result must be 42"); cout << "addVektor erfolgreich" << endl; // bewegeKoerper Koerper koerper; koerper.masse = 10; koerper.position = { 0, 0 }; koerper.geschwindigkeit = { 10, 10 }; Vektor bewegung = {1, -1}; const float dt = 7.0; koerper = bewegeKoerper(koerper, bewegung, dt); assert(fabs(koerper.geschwindigkeit.x - 10.7) < 0.1 && "Result must be 10.7"); assert(fabs(koerper.geschwindigkeit.y - 9.3) < 0.1 && "Result must be 9.3"); assert(fabs(koerper.position.x - 74.9) < 0.1 && "Result must be 74.9"); assert(fabs(koerper.position.y - 65.1) < 0.1 && "Result must be 65.1"); cout << "bewegeKoerper erfolgreich" << endl; } int main() { cout << "Funktionsüberprüfung" << endl; // Function checks function_checks(); // Check whole program cout << "Simulation" << endl; Koerper koerper; koerper.masse = 10; koerper.position = { 0, 0 }; koerper.geschwindigkeit = { 10, 10 }; // Parametrierung der auf den Körper wirkende Kräfte: const Vektor BESCHLEUNIGUNG_GRAVITATION = {0, -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; for(;;) { cout << "Position des Körpers: "; ausgabeKoerper(koerper); cout << endl; // Bestimmung der Kraft Vektor reibungskraft = mulVektor(koerper.geschwindigkeit, REIBUNGSKOEFFIZIENT); Vektor anziehungskraft = mulVektor(BESCHLEUNIGUNG_GRAVITATION, koerper.masse); Vektor gesamtkraft = addVektor(reibungskraft,anziehungskraft); // Ermittlung der neuen Position und neuen Geschwindigkeit koerper = bewegeKoerper(koerper,gesamtkraft,dt); if(koerper.position.y<=0) { break; } } }