Ship movement is computed in exact numbers. PHost computes the angle to the ship's waypoint, and moves it there using double-precision floating point. Thus, it is possible that a ship hits a mine after 17.3 ly at coordinates (2351.56, 1792.35). For reporting, and for actually placing the ship in the game universe, PHost has to round.

New_position =
   (Waypoint_X, Waypoint_Y)
                     ...if Distance_moved = Distance_to_waypoint
                        (i.e. waypoint reached exactly)
   (Position_X + Ceil(Distance_moved * Cos(Heading)),
    Position_Y + Ceil(Distance_moved * Sin(Heading)))
   ...with
      Heading = ArcTan(Waypoint_X - Position_X, Waypoint_Y - Position_Y)

Two noteworthy properties of this formula:

  • Because of the Ceil(...), PHost guarantees you to be able to move your maximum distance. A distance of 81 ly can always be covered with Warp 9, rounding effects will never reduce it below. Regarding fuel consumption, the excess is free (and, regarding ramscoop, it doesn't generate fuel).
  • Rounding can cause mine hits to be reported slightly outside the minefield.

For example, if you set a 90 ly waypoint, your ship will most likely move, say, 81.4 ly, but will only burn fuel for 81 ly, and its ramscoop will only make fuel for 81 ly.