Planar Bertrand Curves (with Pictures!)

Edit: In this blog post I talk sometimes about what I called “creased” points on a curve. My analysis of these points was incorrect. Specifically, I state that there are tangent lines at these points, which is false. Such analysis requires more knowledge of singular points than I have.

I’ve been studying from Erwin Kreyszig’s Differential Geometry. It provides a classical perspective on differential geometry through adventures in 3-dimensional Euclidean space, or \mathbb{R}^3 when we introduce a Cartesian coordinate system. The second chapter is concerned with the theory of curves in \mathbb{R}^3, and it ends with a discussion of so-called Bertrand curves. There aren’t many pictures to go with this discussion, so I tried making some for myself. I found success in the case of planar curves and my experience gave me useful insights into the theory.

Bertrand Curves Defined

Discussing Bertrand curves requires familiarity with some tools in the theory of curves. I’ll present an overview here of the necessary terms and notation from my textbook, assuming experience with vector calculus from the reader. Even if you don’t understand the technicalities, though, you should still be able to make sense of things from the pictures.

A curve captures the notion of something which is traced out by a moving point: strokes of a pencil, paths of stars and planets, the flight of a bumblebee. There are different approaches to create a mathematical model of this loose concept; we’ll use a classical one. Loosely, a curve is a set of points in \mathbb{R}^3 which can locally be represented by a certain equivalence class of vector-valued functions, each on some interval I. We use equivalence classes since, for example, a slow-moving pencil and a fast-moving pencil can draw the same curve and we don’t want to make a distinction there. So for any curve we consider many different functions at once, though in practice it’s often enough to choose just one representative. To apply analytical tools, we require that our functions be continuously differentiable (sometimes several times so). For this reason, the objects we are working with are sometimes called differentiable curves. We also require that the our functions have non-vanishing derivatives so we can make use of tangent vectors. Since I will be writing about planar curves, our point sets will be restricted to a subset of \mathbb{R}^3 which we identify with \mathbb{R}^2.

I will write C: \mathbf{x}(t) to mean “a curve C which has an allowable representation \mathbf{x}(t)“. The parameter t is understood to come from some interval I. I will often abbreviate functions of the parameter t by removing t, for example \mathbf{x} = \mathbf{x}(t). This creates a somewhat convenient confusion between the function and its value at a point.

The unit tangent vector \mathbf{t} to a curve C: \mathbf{x}(t) at some point \mathbf{x} is the unit vector in the direction of \mathbf{x}'. That is, \mathbf{t} = \frac{\mathbf{x'}}{|\mathbf{x}'|}. Each point of C has two opposite-facing unit tangent vectors, depending on the direction in which the curve is traversed by the representation \mathbf{x}. The unit tangent vector \mathbf{t} is easy to confuse with the parameter t, so I’ll point out here that I’m using a bold font for vectors.

A normal to a curve C: \mathbf{x}(t) is a line which intersects C at a right angle to the unit tangent vector. If this property holds for the unit tangent vector in one direction then it also holds for the one in the opposite direction, so this definition is independent of the choice of representation. This extends the usual concept of a normal to a line.

some normals to a line

some normals to a curve

Note that in these diagrams I was only able to show normals which lie in the plane of the screen. However, we can also consider normals which pierce the screen just at a point. With this in mind, there is no sense in talking without any further qualification about the normal at a point \mathbf{x}; in general we talk about a normal at \mathbf{x}.

Let C: \mathbf{x}(t) be a curve such that \mathbf{x} is two times continuously differentiable. There is an associated function \kappa called curvature. Curvature lives up to its name by increasing at points where the curve resembles a smaller circle and decreasing at points where the curve resembles a larger circle. The curvature of a straight line is zero. When \kappa \neq 0 another related function called radius of curvature \rho is defined as \rho = \frac{1}{\kappa}. In fact, \rho is the radius of the best circular approximation to C at any given point. The radius of curvature of a circle is the radius of that circle.

a curve with varying curvature

circular approximation to a curve

Let C: \mathbf{x}(t) be a curve with non-vanishing curvature. The unit principal normal vector \mathbf{p} at a point is the unit vector in the direction of \mathbf{t}'. That is, \mathbf{p} = \frac{\mathbf{t}'}{|\mathbf{t}'|}. It happens to be normal to \mathbf{t} and independent of the choice of representation. The principal normal at a point \mathbf{x} is the normal which intersects C at \mathbf{x} and agrees with the direction of \mathbf{p}. The principal normal specifies one out of the many normals discussed before, so we do speak of the principal normal. In the case of planar curves, the unit principal normal vector to a curve C is the vector which lies in the plane and points towards the curvature of C. Because of this, the principal normal to a planar curve at a point (when it is defined) is the plane normal to the curve at that point.

unit principal normal vector to a planar curve

With these terms out of the way, we come to the definition of Bertrand curves:

Two curves which, at any of their points, have a common principal normal are called Bertrand curves.

That’s a nice definition, but it doesn’t have a clear meaning without inspection. By working with some representations of a pair of Bertrand curves, we can get a better idea of what they’re like.

A More Concrete Understanding

Suppose that C: \mathbf{x}(t) and C^*: \mathbf{x}^*(t) are Bertrand curves, and that the shared parameter t is chosen so that the points \mathbf{x}(t) and \mathbf{x}^*(t) always lie on a common principal normal (this is always possible). Then the vector \mathbf{x}^* - \mathbf{x} is parallel to \mathbf{p}. That is, \mathbf{x}^* - \mathbf{x}  = a\mathbf{p} where a \neq 0 is a function of t. a is the signed distance between \mathbf{x} and \mathbf{x}^*. It is positive if the direction from \mathbf{x} to \mathbf{x}^* is the same as the direction of \mathbf{p} and negative if those directions are opposite. We will see that a is a constant with respect to t by considering the derivative of a^2. We have \frac{d}{dt} a^2 = \frac{d}{dt} |a\mathbf{p}|^2 = \frac{d}{dt} |\mathbf{x}^* - \mathbf{x}|^2 = \frac{d}{dt} [  (\mathbf{x}^* - \mathbf{x}) \cdot (\mathbf{x}^* - \mathbf{x}) ] = 2(\mathbf{x}^* - \mathbf{x}) \cdot ((\mathbf{x}^*)' - \mathbf{x}'). The first argument to this dot product is parallel to \mathbf{p} as we have already noted. The second is a difference of vectors which are parallel to \mathbf{t}^* and \mathbf{t}, respectively. Since \mathbf{t}^* and \mathbf{t} are both perpendicular to \mathbf{p}^* = \pm \mathbf{p}, the arguments to the dot product are perpendicular too, and the expression vanishes.

Bertrand curves have a constant distance between corresponding points

This exploration leaves us with a nice expression relating the representations of our Bertrand curves: \mathbf{x}^*(t) = \mathbf{x}(t) + a\mathbf{p}(t), a \in \mathbb{R} \backslash \{0\}. This expression has been obtained under the assumption that we already have a pair of Bertrand curves. If instead we begin with just one curve C: \mathbf{x}(t) with non-vanishing curvature and define \mathbf{x}^*_a(t) = \mathbf{x}(t) + a\mathbf{p}(t) for a \in \mathbb{R} \backslash \{0\}, then we have a family of vector-valued functions of t, each of which corresponds to a set of points which might be a Bertrand curve to C. The set \mathcal{B} of Bertrand curves to C is contained in the family \mathcal{F} of these point sets. We only have set inclusion, though; \mathcal{B} \neq \mathcal{F}.

If C is a planar curve, then the Frenet-Serret formulas allow us to calculate (\mathbf{x}^*_a)' = (1 - a\kappa)\mathbf{x}'. When 1 - a\kappa \neq 0 (i.e. when a \neq \rho) \mathbf{x}^*_a is an allowable representation of a curve C^*. We can also calculate \rho^* = |\rho - a|, \mathbf{t}^* = \text{sign}(\rho - a)\mathbf{t}, and \mathbf{p}^* = \text{sign}(\rho - a)\mathbf{p}. This last equation implies that C^* is a Bertrand curve to C. When a = \rho on the other hand we have (\mathbf{x}^*_a)' = 0, so \mathbf{x}^*_a is not an allowable representation of a curve and its point set is not a Bertrand curve to C. In summary: \mathcal{B} contains the members of \mathcal{F} which correspond to values of a that the function \rho never attains.

This gives us a lot Bertrand curves. We always have \rho > 0 so, for example, every negative value of a corresponds to a Bertrand curve. I found that studying the family \mathcal{F} associated to a planar curve is a rewarding exercise, both because of the knowledge to be gained and because of the pretty pictures we see along the way.

Example 1: The Circle

An allowable representation of a circle C with radius r > 0 is \mathbf{x} = \langle r\cos(t), r\sin(t) \rangle. We can calculate \rho = r, \mathbf{t} = \langle -\sin(t), \cos(t) \rangle, and \mathbf{p} = \langle -\cos(t), -\sin(t) \rangle. So our family of functions is \mathbf{x}^*_a(t) = \mathbf{x}(t) + a\mathbf{p}(t) = \langle (r-a)\cos(t), (r-a)\sin(t) \rangle.

With our discussion about \mathcal{B} and \mathcal{F} in mind we consider two cases:

  1. Suppose a \neq \rho = r. Then C^*: \mathbf{x}^*_a(t) is a Bertrand curve to C. C^* is a circle, concentric to C and with radius r^* = |r - a|.
  2. Suppose a = \rho = r. Then the point set of \mathbf{x}^*_a is the singleton containing the center of C.

We see that the Bertrand curves to a circle are the concentric circles.

concentric circles and some common normals

Circles are an important example in the theory of curves. At the local scale, any curve C': \mathbf{y}(t) which has non-vanishing curvature resembles a circle of radius \rho_\mathbf{y}. So by studying the behavior of C and C^* over a small interval I we can gain insights which will be useful when we inspect the behavior of a more complicated curve and its corresponding family \mathcal{F} of maybe-Bertrand curves. I’ve made a few diagrams with some small-scale behavior for my notes. In each one I’ve indicated the direction in which \mathbf{x} and \mathbf{x}^* travel, as well as the direction of the vector a\mathbf{p}.

Bertrand curves to circular arcs

This also motivates a mechanical interpretation of our maybe-Bertrand curves in \mathcal{F}. We can imagine a carriage running along a track with an arm attached at a right angle whose tip traces a path. We can also imagine an ant crawling on one side of the curve while wearing a hat whose top traces a path.

ant with a witch hat

Example 2: The Parabola

The parabola P we’ll be considering is given by the allowable representation \mathbf{x} = \langle t, \frac{t^2}{2} \rangle. We can calculate \rho = (1 + t^2)^\frac{3}{2} and \mathbf{t} = \left \langle \frac{1}{\sqrt{1 + t^2}}, \frac{t}{\sqrt{1 + t^2}} \right \rangle. By inspection, we see that \mathbf{p} is a right-angle rotation of \mathbf{t} counter-clockwise. That is, \mathbf{p} = \left \langle - \frac{t}{\sqrt{1 + t^2}}, \frac{1}{\sqrt{1 + t^2}} \right \rangle. So our family of functions is \mathbf{x}^*_a(t) = \mathbf{x}(t) + a\mathbf{p}(t) = \left \langle t - \frac{at}{\sqrt{1 + t^2}}, \frac{t^2}{2} + \frac{a}{\sqrt{1 + t^2}} \right \rangle.

P: \mathbf{x}(t) = \langle t, \frac{t^2}{2} \rangle; a unit tangent vector and principal normal vector
are indicated

This time \rho is not constant, so we need to be more careful in our dissection of \mathcal{F}. \rho is an unbounded concave-upward even function, with a minimum at t=0. I’ll write \min \rho = \rho(0) = 1.

minimum radius of curvature occurs at the center

We are interested in solutions to the equation a = \rho for constant a \in \mathbb{R} \backslash \{0\}. In light of the description of \rho we now consider three cases.

  1. Suppose a < \min \rho. Then we always have a < \rho. P^*: \mathbf{x}^*_a(t) is a Bertrand curve to P.
  2. Suppose a = \min \rho. Then a = \rho only when t = 0. If 0 \notin I we have no problems; P^*: \mathbf{x}^*_a(t) is a Bertrand curve to P. If, on the other hand, 0 \in I then \mathbf{x}^*_a does not represent a Bertrand curve to P since (\mathbf{x}^*_a)'(0) = 0. Surprisingly, the point set of \mathbf{x}^*_a is still a curve, despite the vanishing derivative. Notice that the first component x^*_1 of \mathbf{x}^*_a is strictly increasing, hence one-one. This means that we can solve t for x^*_1 and use x^*_1 as a new parameter: \mathbf{x}^*_a(x^*_1) = \langle x^*_1, x^*_2(t(x^*_1)) \rangle. Except at the point where t = x^*_1 =0, \mathbf{x}^*_a(t) is an equivalent representation to \mathbf{x}^*_a(x^*_1). Hence \mathbf{x}^*_a(x^*_1) is continuously differentiable, even at x^*_1 = 0. Since the derivative of \mathbf{x}^*_a(x_1) is non-vanishing, it is an allowable representation of a curve \widetilde{P}^*. This curve has a very interesting property at x^*_1 = 0. It possesses a tangent vector, so there is no cusp or corner. However, we see that \rho \to \min \rho = a as x^*_1 \to 0, so \rho^* = |\rho - a| \to 0 and \kappa^* = \frac{1}{\rho^*} \to \infty. \widetilde{P}^* has undefined curvature when x^*_1 = 0; one might say that it has 0 as its radius of curvature. I would describe it as looking “creased”. For this reason \widetilde{P}^* lacks a principal normal. This is all that stops \widetilde{P}^* from being a Bertrand curve to P; if we had instead defined Bertrand curves in terms of plane normals then \widetilde{P}^* would be a Bertrand curve to P.
  3. Suppose a > \min \rho. Then there are two solutions t = \pm t_0 to the equation a = \rho. Similar to the previous case, if \pm t_0 \notin I we have no problems; P^*: \mathbf{x}^*_a(t) is a Bertrand curve to P. If \pm t_0 \in I then \mathbf{x}^*_a does not represent a Bertrand curve to P since (\mathbf{x}^*_a)'(\pm t_0) = 0. The point set described by \mathbf{x}^*_a is not a curve at all since there are cusps at t = \pm t_0 where \mathbf{t}^* = \text{sign}(\rho - a) \mathbf{t} suddenly reverses direction. As before, \rho^* = |\rho - a| \to 0 at these points.

a = -1 < 0

a = \frac{1}{2} < \min \rho

a = 1 = \min \rho

a = 2 > \min \rho

I’ve created animations of a few lines marching along P like our friend the ant. I’ve also included the center of the approximating circle to P at the base of the middle marching line. This happens to also be the center of the approximating circle to the curve P^*: \mathbf{x}^*_a(t) when it exists. In fact, this property extends to all planar Bertrand curves. The approximating circles to planar Bertrand curves at corresponding points are concentric. Each frame approximately resembles one of the four diagrams of small-scale behavior for concentric circles.

a = 1, marching

a = 2, marching

Example 3: The Sinusoid

In this section n will represent an arbitrary integer so that we can deal with the periodicity of the curve.

The sinusoid S we’ll be considering is given by the allowable representation \mathbf{x} = \langle t, \sin(t) \rangle. We can calculate \kappa = \frac{|\sin(t)|}{(1 + \cos^2(t))^{\frac{3}{2}}} and \mathbf{t} = \left \langle \frac{1}{\sqrt{1 + \cos^2(t)}}, \frac{\cos(t)}{\sqrt{1 + \cos^2(t)}} \right \rangle. Unlike the previous examples \kappa vanishes at some points, whenever t = \pi n to be specific. This means that S does not possess a unit principal normal vector at these points. When S does possess a unit principal normal vector we can see with some thought that \mathbf{p} = \text{sign}(\sin(t)) \left \langle \frac{\cos(t)}{\sqrt{1 + \cos^2(t)}}, \frac{-1}{\sqrt{1 + \cos^2(t)}} \right \rangle. So our family of functions is \mathbf{x}^*_a(t) = \mathbf{x}(t) + a\mathbf{p}(t) = \left \langle t + \frac{\text{sign}(\sin(t)) \cdot a\cos(t)}{\sqrt{1 + \cos^2(t)}}, \sin(t) - \frac{\text{sign}(\sin(t)) \cdot a}{\sqrt{1 + \cos^2(t)}} \right \rangle, defined everywhere except t = \pi n.

S: \mathbf{x}(t) = \langle t, \sin(t) \rangle; some unit tangent vectors and principal normal vectors are indicated, as well as points where \kappa = 0

Over the interval \widetilde{I}_n: \pi n < t < \pi (n + 1), \rho is defined. Further, it is an unbounded concave-upward function which is symmetric about the center of \widetilde{I}_n and with a minimum at t = \pi (n + \frac{1}{2}). I’ll write t_0 = \pi (n + \frac{1}{2}) and \min \rho = \rho(t_0) = 1. We can see that over this interval the sinusoid is geometrically very similar to the parabola.

minimum radius of curvature occurs periodically

We are interested in solutions to the equation a = \rho for constant a \in \mathbb{R} \backslash \{0\}. To work with \rho we assume that the interval I over which \mathbf{x}^*_a is defined is contained in \widetilde{I}_n. We once again consider three cases.

  1. Suppose a < \min \rho. Then we always have a < \rho. S^*: \mathbf{x}^*_a(t) is a Bertrand curve to S.
  2. Suppose a = \min \rho. Then the only solution to the equation a = \rho in \widetilde{I}_n is t = t_0. If t_0 \notin I we have no problems; S^*: \mathbf{x}^*_a(t) is a Bertrand curve to S. If t_0 \in I then we have a similar situation to the one we had for the parabola in this case. We find that \mathbf{x}^*_a is not an allowable representation of a curve but its point set is a curve \widetilde{S}^*. \widetilde{S}^* is not a Bertrand curve to S because it lacks a unit principal normal vector at t = t_0. It does have a unit tangent vector at this point, and I would say it looks creased.
  3. Suppose a > \min \rho. Then there are two solutions t = t_{1,2} to the equation a = \rho in \widetilde{I}_n. If If t_{1,2} \notin I we have no problems; P^*: \mathbf{x}^*_a(t) is a Bertrand curve to P. Similar to the parabola, we find cusps in the point set of \mathbf{x}^*_a when t_{1,2} \in I.

a = -1 < 0

a = \frac{1}{2} < \min \rho

a = 1 = \min \rho

a = 2 > \min \rho

We see that the alternating direction in which S curves causes jump discontinuities in \mathbf{x}^*_a, which depends on \mathbf{p}.

Parallel Curves

Parallel curves are a generalization of planar Bertrand curves. A curve whose points are at a constant normal distance from another given curve is a parallel curve. We’ll treat this as a definition for parallel curves, although there is a more general definition than this.

Since this new definition doesn’t require the existence of principal normals, the questionable “creased” curves which we have encountered do count as parallel curves. The jump discontinuities created by the waving sinusoid are also resolved by the new definition, though this requires deeper consideration.

If we follow through with a similar analysis to the one we did before, we find ourselves researching a family \mathbf{x}^{**}_a(t) = \mathbf{x}(t) + a\mathbf{n}(t), where \mathbf{n} is a right-angle rotation of \mathbf{t} in a constant direction; our crawling ant stays on one side of the curve. In the first two examples we find no difference between the old and new families of functions since we simply have \mathbf{p} = \pm \mathbf{n} where the sign is a constant. For S, however, this equation cannot hold since the direction of rotation from \mathbf{t} to \mathbf{p} changes periodically; we have instead \mathbf{p}(t) \! = \! \pm \text{sign}(\sin(t))\mathbf{n}(t). Further, \mathbf{n} is defined everywhere in \mathbb{R}, unlike \mathbf{p}. We can recover the point set of \mathbf{x}^{**}_a by taking the union of the point sets of \mathbf{x}^*_a and \mathbf{x}^*_{-a}. This gives us \mathbf{x} \pm a\mathbf{p}, so for each arc of S in which \kappa \neq 0 we get one point set in the direction of \mathbf{p} and another in the direction of -\mathbf{p}. There are still holes in the resulting point set where \mathbf{p} is not defined, but by taking its closure we end with the point set of \mathbf{x}^{**}_a as well as that of \mathbf{x}^{**}_{-a}. Now we see that the jump discontinuities are indeed resolved.

a = \pm \frac{1}{2}

a = \pm 1

a = \pm 2

Wikipedia offers this exciting interpretation of parallel curves:

In computer-aided design the preferred term for a parallel curve is offset curve. (In other geometric contexts, the term offset can also refer to translation.) Offset curves are important for example in numerically controlled machining, where they describe for example the shape of the cut made by a round cutting tool of a two-axis machine.


Non-Planar Bertrand Curves

It turns out that Bertrand curves to a given non-planar curve are much rarer than they are for planar curves; most non-planar curves have either one Bertrand pair of none. The only exception to this rule are the helices. Each helix has an infinite family of Bertrand curves, made up of other helices. Although they are infinite, no family contains all helices.

some helices which are Bertrand curves, as well as one which is not

Non-planar Bertrand curves seem a lot weirder to me. My textbook spent all but the first opening paragraph of its Bertrand curve section discussing them, and the discussion is very delicate. I found it much more difficult to come up with explicit equations for non-planar curves which have a Bertrand pair. I tried out a few guesses, but none met the right conditions to even have a Bertrand pair. This speaks to their elusiveness. Because of this I don’t have any more nice pictures. I’m sure it would be interesting to study the family \mathcal{F} corresponding to a non-planar curve, but I’m just not interested since I won’t find Bertrand curves without a lot more work.


Planar Bertrand curves are neat. I like them. I like them so much that I wrote this blog post about them. Aren’t they cool?

Doing this analysis helped me to practice thinking at a local scale; each of the example functions \mathbf{x} and \mathbf{x}^*_a are defined over a large domain, but in their analysis we often throw away most of that to focus on local behavior. It was also exciting to try out the techniques of the theory of curves on these curves out in the “wild” after studying about them. Once you’ve learned to use these tools, you can create some very interesting pictures with just some calculation and a graphing calculator

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

%d bloggers like this: