Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * $Author: MahrTh $
- * $Rev: 118 $
- * $Date: 2015-03-21 21:39:51 +0100 (Sa, 21. Mär 2015) $
- * OPR-Praktikum: Aufgabe 1_Grundlagen/02_Kapselung/Flugkurve01
- */
- #include <iostream>
- using namespace std;
- struct Vektor
- {
- float x;
- float y;
- };
- struct Koerper
- {
- float masse;
- Vektor position;
- Vektor geschwindigkeit;
- Vektor beschleunigung;
- };
- struct Vektor
- {
- struct BESCHLEUNIGUNG_GRAVITATION
- {
- float xBESCHLEUNIGUNG_GRAVITATION;
- float yBESCHLEUNIGUNG_GRAVITATION;
- } BESCHLEUNIGUNG_GRAVITATION;
- };
- void ausgabeKoerper(struct Koerper koerper)
- {
- cout << "(" << koerper.position.xPosition << "," << koerper.position.yPosition << ")" << endl;
- };
- struct Vektor mulVektor(struct Koerper a, float x){
- Vektor b;
- b.x = a.x * x;
- b.y = a.y * x;
- return (b);
- };
- int main()
- {
- // Körper:
- Koerper koerper;
- koerper.masse = 10;
- koerper.position = { 0, 0 };
- koerper.geschwindigkeit = { 10, 10 };
- koerper.beschleunigung = { 0, 0 };
- // 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 neuen Beschleunigung
- //koerper.beschleunigung = koerper.geschwindigkeit;
- koerper.beschleunigung = mulVektor(koerper.geschwindigkeit,REIBUNGSKOEFFIZIENT/koerper.masse);
- koerper.beschleunigung = addVektor(koerper.beschleunigung,BESCHLEUNIGUNG_GRAVITATION);
- // Ermittlung der neuen Position und neuen Geschwindigkeit
- koerper = bewegeKoerper(koerper,dt);
- if(koerper.position.y<=0)
- {
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement