Pursuit curves are the curves described by moving particles which follow other particles moving at a constant speed. In popular mathematics these problems have been also referred as the dog's curve, or mice curves, assuming the moving object is a man and the follower his dog in the former example, or mice located at the corners of regular polygons in the later one.
When the moving objects are located strategically, for example at the vertex of regular polygons as in the mice problem, and their initial velocity vector are carefully chosen, the patterns emerging from the pursuit curves are symmetric and can be used as decorative purposes, for example with CNC milling machines.
In order to explore these patterns, I wrote this python mini project using Pyglet. The project can be found on my github repository.
Executing the script for the two body problem, we get the following pursuit curve:
>python3.6 object_pursuit_curve.py -i two_body_problem.cfg
For the three body problem, with each object located in a regular triangle and initially moving to the other vertex, we get:
>python3.6 object_pursuit_curve.py -i three_body_problem.cfg
Finally, for the four body problem, we get:
>python3.6 object_pursuit_curve.py -i four_body_problem.cfg
By changing the configuration files of the description of each problem, you can easily try with other regular polygons or other more complex patterns. An extension of the program would be to add the capability of describing the velocity vectors of one moving object in parametric equations, so that it can follows circular trajectories, but it is left for the future.
For further references, please visit the following links:
- Wikipedia: Pursuit Curves, in English
- Wikipedia: Pursuit Curves, in French
- Universidad Complutense de Madrid: Page on Pursuit Curves, in Spanish
- Wolfram Research: entry for Pursuit Curves, in English
- Wikipedia: Envelope curves, in English