Learning Scientific Programming with Python (2nd edition)

E8.10: The Euler spiral

As well as playing an important role in the description of diffraction effects in optics, the Fresnel integrals,

$$ \begin{align*} S(z) &= \int_0^z \sin\left(\frac{\pi t^2}{2}\right)\,\mathrm{d}t,\\ C(z) &= \int_0^z \cos\left(\frac{\pi t^2}{2}\right)\,\mathrm{d}t,\\ \end{align*} $$

find an application in the design of motorway junctions (freeway intersections). The curve described by the parametric equations $(x,y) = (S(t), C(t))$ is called a clothoid (or Euler spiral) and has the property that its curvature is proportional to the distance along the path of the curve. Hence, a vehicle travelling at constant speed will experience a constant rate of angular acceleration as it travels around the curve — this means that the driver can turn the steering wheel at a constant rate which makes the junction safer.

The following code plots the Euler spiral for $-10 \le t \le 10$.

import numpy as np
from scipy.special import fresnel
import matplotlib.pyplot as plt

t = np.linspace(-10, 10, 1000)
plt.plot(*fresnel(t), c="k")
plt.show()
The Euler Spiral

The Euler Spiral.