Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.30 KB | None | 0 0
  1. /**
  2. * $Author: MahrTh $
  3. * $Rev: 118 $
  4. * $Date: 2015-03-21 21:39:51 +0100 (Sa, 21. Mär 2015) $
  5. * OPR-Praktikum: Aufgabe 1_Grundlagen/02_Kapselung/Flugkurve01
  6. */
  7. #include <iostream>
  8.  
  9. using namespace std;
  10.  
  11. struct Koerper
  12. {
  13.  
  14.     float masse;
  15.  
  16.     struct position
  17.     {
  18.         float xPosition;
  19.         float yPosition;
  20.     } position;
  21.  
  22.     struct geschwindigkeit
  23.     {
  24.         float xgeschwindigkeit;
  25.         float ygeschwindigkeit;
  26.     } geschwindigkeit;
  27.  
  28.     struct beschleunigung
  29.     {
  30.         float xbeschleunigung;
  31.         float ybeschleunigung;
  32.     } beschleunigung;
  33.  
  34. };
  35.  
  36. struct Vektor
  37. {
  38.     struct BESCHLEUNIGUNG_GRAVITATION
  39.     {
  40.         float xBESCHLEUNIGUNG_GRAVITATION;
  41.         float yBESCHLEUNIGUNG_GRAVITATION;
  42.     } BESCHLEUNIGUNG_GRAVITATION;
  43. };
  44.  
  45. void ausgabeKoerper(struct Koerper koerper)
  46. {
  47.     cout << "(" << koerper.position.xPosition << "," << koerper.position.yPosition << ")" << endl;
  48. };
  49.  
  50. struct Koerper mulVektor(struct Koerper a, float x){
  51.     Koerper b;
  52.     b.beschleunigung.xbeschleunigung = a.geschwindigkeit.xgeschwindigkeit * x;
  53.     b.beschleunigung.ybeschleunigung = a.geschwindigkeit.ygeschwindigkeit * x;
  54.     return (b);
  55.  
  56. };
  57.  
  58.  
  59. int main()
  60. {
  61.  
  62. // Körper:
  63.     Koerper koerper;
  64.     koerper.masse = 10;
  65.     koerper.position = { 0, 0 };
  66.     koerper.geschwindigkeit = { 10, 10 };
  67.     koerper.beschleunigung = { 0, 0 };
  68. // Parametrierung der auf den Körper wirkende Kräfte:
  69.     const Vektor BESCHLEUNIGUNG_GRAVITATION = {0, -9.81}; // [m/s^2]
  70.     const float REIBUNGSKOEFFIZIENT = -5; // [kg/s]
  71. // Sorgt dafür, dass 2 Nachkommastellen angezeigt werden:
  72.     cout << fixed;
  73.     cout.precision(2);
  74. // Simulation:
  75.     const float dt = 0.1;
  76.     for(;;)
  77.     {
  78.         cout << "Position des Körpers: ";
  79.         ausgabeKoerper(koerper);
  80.         cout << endl;
  81. // Bestimmung der neuen Beschleunigung
  82.         //koerper.beschleunigung = koerper.geschwindigkeit;
  83.         koerper.beschleunigung = mulVektor(koerper.geschwindigkeit,REIBUNGSKOEFFIZIENT/koerper.masse);
  84.         koerper.beschleunigung = addVektor(koerper.beschleunigung,BESCHLEUNIGUNG_GRAVITATION);
  85.  
  86. // Ermittlung der neuen Position und neuen Geschwindigkeit
  87.         koerper = bewegeKoerper(koerper,dt);
  88.         if(koerper.position.y<=0)
  89.         {
  90.             break;
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement