using System; namespace Science.Physics.GeneralPhysics { /// /// Gravitation /// public class Gravitation { public Gravitation() { } public Vector ForceOnSecondByFirst(Mass m1, Position r1, Mass m2, Position r2) { Vector del = r2 - r1; Position delr = new Position(); delr.X = del.X; delr.Y = del.Y; delr.Z = del.Z; Vector f = this.Field(m1,delr)*m2.kg; return f; } public static double Constant { get{return 6.673*Math.Pow(10.0,-11.0);} } public static double RadiusOfEarth { get{return 6378100.0;} } public Vector Field(Mass m, Position r) { UnitVector rhat = new UnitVector(r); Vector v = (-Gravitation.Constant*m.kg/r.m/r.m)*rhat; return v; } public Vector Field(Mass m, Position positionofm, Position r) { Vector del = r - positionofm; UnitVector rhat = new UnitVector(del); Vector v = (-Gravitation.Constant*m.kg/del.Norm/del.Norm)*rhat; return v; } public Scalar PotentialEnergy(Mass m1, Position r1, Mass m2, Position r2) { Vector del = r2 - r1; Scalar s = new Scalar(); s.Magnitude = - Gravitation.Constant*m1.kg/del.Norm*m2.kg; return s; } } }