# Cornu's Spiral

# Cornu's Spiral

### Some of us at DZone develop scientific/engineering/research code. And to people like us, an elegant and simple mathematical function can be a powerful tool. We might not use it today but it's nice to have in the toolbox!

Join the DZone community and get the full member experience.

Join For FreeCornu’s spiral is the curve parameterized by:

Where *C* and *S* are the Fresnel functions, sometimes called the Fresnel cosine integral and Fresnel sine integral. Here’s a plot of the spiral.

Both Fresnel functions approach ½ as *t* → ∞ and so the curve slowly spirals toward (½, ½) in the first quadrant. And by symmetry, because both functions are odd, the curve spirals toward (-½, -½) in the third quadrant.

Here’s the Python code used to make the plot:

```
from scipy.special import fresnel
from scipy import linspace
import matplotlib.pyplot as plt
t = linspace(-7, 7, 1000)
y, x = fresnel(t)
plt.plot(x, y)
plt.axes().set_aspect("equal")
plt.show()
```

The SciPy function `fresnel`

returns both Fresnel functions at the same time. It returns them in the order (*S*, *C*) so the code reverses the order of these to match the Cornu curve.

One interesting feature of Cornu’s spiral is that its curvature increases linearly with time. This is easy to verify: because of the fundamental theorem of calculus, the Fresnel functions reduce to sines and cosines when you take derivatives, and you can show that the curvature at time *t* equals π*t*.

Cornu’s spiral was actually discovered by Euler. Cornu was an engineer who independently discovered the curve much later. Perhaps because Cornu used the curve in applications, his name is more commonly associated with the curve. At least I’ve more often seen it named after Cornu. This is an example of Stigler’s law that things are usually not named after the first person to discover them.

Published at DZone with permission of John Cook , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

## {{ parent.title || parent.header.title}}

{{ parent.tldr }}

## {{ parent.linkDescription }}

{{ parent.urlSource.name }}