Glaube flugkurve01.cpp ist fertig, ich hoffe ich muss nur noch die .h ändern
This commit is contained in:
parent
78de564416
commit
7618246a5b
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,4 @@
|
||||
1_Grundlagen/code/matrix.exe
|
||||
.out
|
||||
.exe
|
||||
.a
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user