Example #1
0
 def check_radius_and_speed(self, obj, orbit):
     # Compute position from orbital elements
     pos = compute_position(obj, orbit.body.non_rotating_reference_frame)
     # Compute radius from position
     radius = norm(pos) * 1000000
     self.assertAlmostEqual(radius, orbit.radius, delta=1)
     # Compute speed from radius
     speed = math.sqrt(orbit.body.gravitational_parameter *
                       ((2 / radius) - (1 / orbit.semi_major_axis)))
     self.assertAlmostEqual(speed, orbit.speed, delta=1)
Example #2
0
 def check_radius_and_speed(self, obj, orbit):
     # Compute position from orbital elements
     pos = compute_position(obj, orbit.body.non_rotating_reference_frame)
     # Compute radius from position
     radius = norm(pos) * 1000000
     self.assertAlmostEqual(radius, orbit.radius, delta=1)
     # Compute speed from radius
     speed = math.sqrt(orbit.body.gravitational_parameter
                       * ((2/radius)-(1/orbit.semi_major_axis)))
     self.assertAlmostEqual(speed, orbit.speed, delta=1)
Example #3
0
 def check_object_position(self, obj, ref):
     # Check (0, 0, 0) position is at object position
     self.assertAlmostEqual((0, 0, 0), obj.position(ref))
     # Check norm of object position is same as objects orbital radius
     if obj.orbit is not None:
         pos = obj.orbit.body.position(ref)
         self.assertAlmostEqual(obj.orbit.radius, norm(pos), delta=20)
     # Check position agrees with that calculated from bodies orbit
     if obj.name in ('Kerbin', 'Mun', 'Minmus', 'Test'):
         ref = obj.orbit.body.reference_frame
         expected_pos = compute_position(obj, ref)
         actual_pos = tuple(x / 1000000 for x in obj.position(ref))
         self.assertAlmostEqual(expected_pos, actual_pos, delta=1)
Example #4
0
 def check_object_position(self, obj, ref):
     # Check (0, 0, 0) position is at object position
     self.assertAlmostEqual((0, 0, 0), obj.position(ref))
     # Check norm of object position is same as objects orbital radius
     if obj.orbit is not None:
         pos = obj.orbit.body.position(ref)
         self.assertAlmostEqual(obj.orbit.radius, norm(pos), delta=20)
     # Check position agrees with that calculated from bodies orbit
     if obj.name in ('Kerbin', 'Mun', 'Minmus', 'Test'):
         ref = obj.orbit.body.reference_frame
         expected_pos = compute_position(obj, ref)
         actual_pos = tuple(x / 1000000 for x in obj.position(ref))
         self.assertAlmostEqual(expected_pos, actual_pos, delta=1)