Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 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 Vektor
  12. {
  13. float x;
  14. float y;
  15. };
  16.  
  17. struct Koerper
  18. {
  19.  
  20. float masse;
  21.  
  22. Vektor position;
  23.  
  24. Vektor geschwindigkeit;
  25.  
  26. Vektor beschleunigung;
  27.  
  28. };
  29.  
  30. struct Vektor
  31. {
  32. struct BESCHLEUNIGUNG_GRAVITATION
  33. {
  34. float xBESCHLEUNIGUNG_GRAVITATION;
  35. float yBESCHLEUNIGUNG_GRAVITATION;
  36. } BESCHLEUNIGUNG_GRAVITATION;
  37. };
  38.  
  39. void ausgabeKoerper(struct Koerper koerper)
  40. {
  41. cout << "(" << koerper.position.xPosition << "," << koerper.position.yPosition << ")" << endl;
  42. };
  43.  
  44. struct Vektor mulVektor(struct Koerper a, float x){
  45. Vektor b;
  46. b.x = a.x * x;
  47. b.y = a.y * x;
  48. return (b);
  49.  
  50. };
  51.  
  52.  
  53. int main()
  54. {
  55.  
  56. // Körper:
  57. Koerper koerper;
  58. koerper.masse = 10;
  59. koerper.position = { 0, 0 };
  60. koerper.geschwindigkeit = { 10, 10 };
  61. koerper.beschleunigung = { 0, 0 };
  62. // Parametrierung der auf den Körper wirkende Kräfte:
  63. const Vektor BESCHLEUNIGUNG_GRAVITATION = {0, -9.81}; // [m/s^2]
  64. const float REIBUNGSKOEFFIZIENT = -5; // [kg/s]
  65. // Sorgt dafür, dass 2 Nachkommastellen angezeigt werden:
  66. cout << fixed;
  67. cout.precision(2);
  68. // Simulation:
  69. const float dt = 0.1;
  70. for(;;)
  71. {
  72. cout << "Position des Körpers: ";
  73. ausgabeKoerper(koerper);
  74. cout << endl;
  75. // Bestimmung der neuen Beschleunigung
  76. //koerper.beschleunigung = koerper.geschwindigkeit;
  77. koerper.beschleunigung = mulVektor(koerper.geschwindigkeit,REIBUNGSKOEFFIZIENT/koerper.masse);
  78. koerper.beschleunigung = addVektor(koerper.beschleunigung,BESCHLEUNIGUNG_GRAVITATION);
  79.  
  80. // Ermittlung der neuen Position und neuen Geschwindigkeit
  81. koerper = bewegeKoerper(koerper,dt);
  82. if(koerper.position.y<=0)
  83. {
  84. break;
  85. }
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement