From the Depths Wiki
Advertisement

The idea is to have an easily invertible function that maps the effective position---where the projectile would be if there were no drag---to the actual position of the projectile. Then to hit a target point, we simply invert the target coordinates and aim at that point instead.

Basics[ | ]

Let the function that maps the effective position of the projectile to the actual position be

The trajectory of a dragless projectile is

The trajectory of the projectile after drag is then

To hit a point , we instead aim at

as if there were no drag.

Choosing the function[ | ]

Of course, is a very large space. Let us see what sort of functions might be appropriate.

  • should be continuous.
  • doesn't necessarily have to be onto---it's fine if shells can't reach some parts of the world. But it should probably be one-to-one, as otherwise we will almost certainly suffer discontinuities in the inverse.
  • One possibility for simplification is making depend on and/or affect only the distance from the origin. However, this could cause some strange trajectories with high-angle fire.
  • Another is to separate the and directions so that and .
  • In fact, we may even consider dispensing with modifying at all, in which case , , and .
  • could of course also depend on fixed properties of the projectile.
  • should map the origin to the origin, and we should have (no scaling near the origin).

Some x-only possibilities[ | ]

  • for some maximum horizontal range parameter . This corresponds to linear drag in the horizontal axis only.
  • . This corresponds to quadratic drag in the horizontal axis only.

Other considerations[ | ]

  • At the least additional work would be needed to deal with inherited velocity.
  • Affecting only the horizontal axis will cause shells to plunge pretty heavily at the end. Though maybe that could be a feature. On the other hand, if they keep their vertical velocity in space, they will tend to curve upwards...
Advertisement