Ik wil voor een hobby project het effect van zwaartekracht van de zon op planeten berekenen, op wikipedia vond ik de volgende formule (op basis van vectoren):

En omdat ik vroeger niet goed heb opgelet op school, lukt het mij niet om deze om te zetten naar werkende (pseudo)code in C#.
Wat ik tot nu toe heb staan:
Ik weet dat de fout in de laatste 2 regels zit. Ik heb de twee massa's met elkaar vermenigvuldigd en deel ze hier door de afstand tussen de 2 objecten in het kwadraat, maar ik vermoed dat ik de formule daar verkeerd begrijp. Iemand die mij hier een duwtje in de rug kan geven?

En omdat ik vroeger niet goed heb opgelet op school, lukt het mij niet om deze om te zetten naar werkende (pseudo)code in C#.
Wat ik tot nu toe heb staan:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| class OrbitalBody { public const double GRAV = 6.6720e-08; public double mass; public Vector2 position; public OrbitalBody(double m, Vector2 p) { this.mass = m; this.position = p; } public Vector2 CalculateGravForce(OrbitalBody ob1) { double a = ob1.mass * this.mass; Vector2 distAB = this.position - ob1.position; Vector2 unitAB = distAB; unitAB.Normalize(); double temp = a / (double)distAB.LengthSquared(); Vector2 retVec = -(Vector2.Multiply(unitAB, (float)(temp * GRAV)) ); return retVec; } } |
Ik weet dat de fout in de laatste 2 regels zit. Ik heb de twee massa's met elkaar vermenigvuldigd en deel ze hier door de afstand tussen de 2 objecten in het kwadraat, maar ik vermoed dat ik de formule daar verkeerd begrijp. Iemand die mij hier een duwtje in de rug kan geven?
offtopic:
Ik weet dat ik een hoop precisie verlies door het gebruik van een op (float) gebaseerde Vector class en ben ook van plan dit te gaan wijzigen als ik het bovenstaande eenmaal werkend heb
Ik weet dat ik een hoop precisie verlies door het gebruik van een op (float) gebaseerde Vector class en ben ook van plan dit te gaan wijzigen als ik het bovenstaande eenmaal werkend heb
... MMORPG Addict.