Polyhelices through n points

Alain Goriely, Sébastien Neukirch, Andrew Hausrath

► To cite this version:

Alain Goriely, Sébastien Neukirch, Andrew Hausrath. Polyhelices through n points. International Journal of Bioinformatics Research and Applications, 2009, 5 (2), pp.118. 10.1504/IJBRA.2009.024032. hal-05388790

HAL Id: hal-05388790

https://hal.science/hal-05388790v1

Submitted on 29 Nov 2025

**HAL** is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Polyhelices through $n$ points

Alain Goriely*, Sébastien Neukirch†, and Andrew Hausrath‡

* Program in Applied Mathematics and Department of Mathematics, ‡Department of Biochemistry and Molecular Biophysics, University of Arizona, Tucson, AZ 85721.

†Laboratoire de Modélisation en Mécanique, UMR 7607: CNRS & Université Pierre et Marie Curie, Paris, France.

E-mail: goriely@math.arizona.edu

*Corresponding author

**Abstract:** A polyhelix is continuous space curve with continuous Frenet frame that consists of a sequence of connected helical segments. The main result of this paper is that given $n$ points in space, there exist infinitely many polyhelices passing through these points. These curves are by construction continuous with continuous derivatives and are completely specified by $3n$ numbers, i.e., the initial position, the signed curvature, torsion, and length of each helical segment. Polyhelices can be parametrized by the arc length and easily expressed in terms of product of matrices.

## 1 Introduction

Consider an ordered set of $n$ points in space. We show that there is a sequence of helical segments passing through these points, with the properties that the entire sequence is solely described by the curvature, torsion and total arc length of each helical segment. These so-called *polyhelices* [HG06b] can be computed as product of matrices and are therefore particularly convenient for the representation of filamentary structure in fields such as protein structure [CSB96], elementary particle trajectories [FSW02], finite element codes [Wei02] or for visualization purposes [KR99].

## 2 Definitions

### 2.1 Geometry of helices

Before proceeding with the construction of helices, we recall some of their basic properties. First, we consider a curve $r(s) = (x, y, z)$, of class $C^3$, parametrized by its arc length $s$ in a fixed reference frame $\{e_1, e_2, e_3\}$. From the curve, we can define the Frenet basis, that is a local orthonormal basis on $r$ defined by the tangent vector
$t = r'$ as the arc-length derivative of $r$, the normal $n = t'/|t'|$ and the binormal $b = t \times n$. The changes in the orientation of this frame along $s$ are specified by the Frenet differential equations in terms of two local quantities the curvature $\kappa(s)$ and torsion $\tau(s)$:

$$ (1) \qquad r' = t $$

$$ (2) \qquad t' = \kappa n $$

$$ (3) \qquad n' = \tau b - \kappa t $$

$$ (4) \qquad b' = -\tau n $$

where $(\cdot)'$ denotes differentiation with respect to the arc length $s$. A circular helix or simply a helix is defined as a curve with constant curvature and torsion. To relate the curvature and torsion to the usual radius and pitch of a helix we can study, without loss of generality, a helix whose axis is along the z-axis

$$ (5) \qquad r = (R \cos(\delta s), R \sin(\delta s), P \delta s), \quad \text{where} \quad \delta = \frac{1}{\sqrt{P^2 + R^2}} $$

The choice $P > 0$ (resp. $P < 0$) defines a right-handed helix (resp. left-handed) as shown in Fig. 1. The height or pitch (along the z-axis) per turn of the helix is $p = 2\pi|P|$, the radius $R$, and the length of the curve per turn is $2\pi/\delta$. We can now

<figure><img src="image_2.png" /><figcaption>**Figure 1** A helix characterized by a radius $R$, and a pitch $2\pi P$. The local Frenet frame is shown at one particular point. The angle $\theta$ is the angle between the tangent vector $t$ and the helix axis $e_3$.</figcaption></figure>

build the Frenet triad for the helix. The normal vector $n$ is obtained by further differentiating and normalizing the tangent vector and the binormal vector $b$ is
obtained by taking the cross product **b** = **t** × **n**.

$$
(6) \quad \mathbf{t} = (-R\delta \sin \delta s, R\delta \cos \delta s, P\delta),
$$

$$
(7) \quad \mathbf{n} = (-\cos \delta s, -\sin \delta s, 0),
$$

$$
(8) \quad \mathbf{b} = (P\delta \sin \delta s, -P\delta \cos \delta s, R\delta).
$$

The curvature, $\kappa$ and torsion, $\tau$, are obtained by considering the norm of $\mathbf{t}'$ and $\mathbf{b}'$
and are found to be

$$
(9) \qquad \kappa = R\delta^2 = \frac{R}{P^2 + R^2}, \quad \tau = P\delta^2 = \frac{P}{P^2 + R^2},
$$

which implies $\delta^2 = \kappa^2 + \tau^2$ and

$$
(10) \qquad R = \kappa/\delta^2 = \frac{\kappa}{\kappa^2 + \tau^2}, \quad P = \tau/\delta^2 = \frac{\tau}{\kappa^2 + \tau^2}.
$$

The *helix angle* $\theta$ is the angle between the axis and the tangent vector defined in
the interval $[0, \pi]$ by

$$
(11) \quad \cos \theta = \mathbf{t} \cdot \mathbf{e}_3 = P\delta = \tau/\delta
$$

$$
(12) \quad \sin \theta = \mathbf{n} \cdot (\mathbf{e}_3 \times \mathbf{t}) = R\delta = \kappa/\delta.
$$

Similarly, the *pitch angle* $\hat{\theta}$ is the angle between the tangent and the plane normal
to the axis, that is $\hat{\theta} = \pi/2 - \theta$. The sign of the pitch angle defines the handedness
of the helix (right-handed helices have positive pitch angles).

2.2 Polyhelices

Since the curvature and torsion of a helix are constant, the Frenet equations (1-4)
can be integrated explicitly. To do so, we introduce a 12 dimensional vector whose
entries are the 9 components of the three Frenet vectors in the fixed basis as well as
the 3 coordinates of a point on the curve $\mathbf{Y} = \{t_1, n_1, b_1, t_2, n_2, b_2, t_3, n_3, b_3, r_1, r_2, r_3\}$
and the Frenet equations can now be written

$$
(13) \quad \mathbf{Y}' = M \cdot \mathbf{Y}, \quad \text{with} \quad M = \begin{bmatrix} F & 0 & 0 & 0 \\ 0 & F & 0 & 0 \\ 0 & 0 & F & 0 \\ V_1 & V_2 & V_3 & 0 \end{bmatrix}, \quad F = \begin{bmatrix} 0 & \kappa & 0 & 0 \\ -\kappa & 0 & \tau & 0 \\ 0 & 0 & -\tau & 0 \end{bmatrix}
$$

and where $V_i$ is the 3×3 matrix whose single non-vanishing entry is a 1 in row $i$, column 1. For greater generality, we admit here solutions with negative curvature (the so-called “signed curvature”), this amounts to choose an inward (positive curvature) or outward (negative curvature) normal vector to the curve. Also, in this case the helix angle $\theta$ is taken between 0 and $2\pi$. Note that the handedness of a structure is specified by the sign of the torsion (see Eq.(10) for $P$) and is therefore independent of the sign of the curvature.

For a helix, Eq. (13) is a system of linear differential equations with constant
coefficients. Therefore, it can be integrated explicitly. A segment of a helix starting
at $s = 0$ is completely characterized by the initial position and orientation of the
Frenet basis $\mathbf{Y}(0)$ and the triple $\omega = \{\kappa, \tau, L\}$ of curvature $\kappa$, torsion $\tau$, and length $L$. In such case, the explicit solution to Eq. (13) is

$$ (14) \qquad \mathbf{Y}(s) = A(\kappa, \tau; s) \cdot \mathbf{Y}(0) \quad 0 \le s \le L, $$

where $A(\kappa, \tau; s) = e^{sM}$ is the matrix exponential which can be written

$$ A(\kappa, \tau; s) = \begin{bmatrix} a_0 & 0 & 0 & 0 \\ 0 & a_0 & 0 & 0 \\ 0 & 0 & a_0 & 0 \\ a_1 & a_2 & a_3 & I_3 \end{bmatrix}, \quad a_0 = \begin{bmatrix} 1 - \frac{\kappa^2}{\delta^2}(1 - \cos \delta s) & \frac{\kappa}{\delta} \sin \delta s & \frac{\kappa \tau}{\delta^2} (1 - \cos \delta s) \\ -\frac{\kappa}{\delta} \sin \delta s & \cos \delta s & \frac{\tau}{\delta^2} \sin \delta s \\ \frac{\kappa \tau}{\delta^2} (1 - \cos \delta s) & -\frac{\tau}{\delta} \sin \delta s & 1 - \frac{\tau}{\delta^2} (1 - \cos \delta s) \end{bmatrix}, $$

and $a_i$ is the 3×3 matrix whose only non-vanishing row is the $i$th row and is given by

$$ (15) \qquad \left( \frac{\delta s \tau^2 + \kappa^2 \sin \delta s}{\delta^3}, \frac{\kappa}{\delta^2} (1 - \cos \delta s), \frac{\kappa \tau}{\delta^3} (\delta s - \sin \delta s) \right), $$

where $\delta = \sqrt{\kappa^2 + \tau^2}$, and $I_3$ is the 3×3 identity matrix. This construction naturally leads to the definition of Frenet polyhelices (polyhelices for short in this paper).

**Definition 2.1.** A Frenet polyhelix is a solution of the Frenet differential equations (1-4) with piecewise constant curvature and torsion.

The fact that the polyhelix is a solution of the Frenet equations implies that the Frenet frame is continuous. The fact that curvature and torsion are piecewise constant implies that each segment where they are both constant is a helical segment. The polyhelix is said to be finite if there exists a finite number of helical segments and the total arc length is finite. Each segment is fully characterized by the triple $\omega = \{\kappa, \tau, L\}$ and we have the following result.

**Proposition 2.2.** A finite Frenet polyhelix is specified (up to a rotation and translation) by the ordered list

$$ (16) \qquad \Omega = \{\omega^{(i)}, i = 1, \dots, N\} = \{\{\kappa^{(i)}, \tau^{(i)}, L^{(i)}\}, i = 1, \dots, N\}. $$

Moreover, the $j$th helical segment is parametrized by the last three components of the vector $\mathbf{Y}^{(j)}(s)$:

$$ (17) \qquad \mathbf{Y}^{(j)}(s) = A(\kappa^{(j)}, \tau^{(j)}; s - L_{j-1}) \cdot \prod_{k=1}^{j-1} A^{(k)} \cdot \mathbf{Y}^{(0)}, \quad L_{j-1} \le s \le L_j, $$

where $\mathbf{Y}^{(0)} = \mathbf{Y}(s=0)$ is given by the initial Frenet frame and position, $A^{(k)} = A(\kappa^{(k)}, \tau^{(k)}; L^{(k)})$, $L_0 = 0$, $L_j = \sum_{k=1}^j L^{(k)}$ is the total arc length of the $j$ first segments and the product of matrices is taken in reverse order ($\prod_{k=1}^j A^{(k)} = A^{(2)} \cdot A^{(1)}$).

**Proof.** Since the polyhelix is finite there exists a finite number $N$ of intervals where curvature and torsion are constant. This polyhelix is completely characterized by the list $\Omega$ and an initial position and basis orientation $\mathbf{Y}^{(0)} = \mathbf{Y}(s=0)$
through the solution of the Frenet equations. A parametric expression in arc length for the jth segment of the curve r(s) is given by the solution of the Frenet equations through the explicit solution (14). The Frenet frame and position at the beginning of each segment is specified by the value of Y at the end of the previous segment.

<figure><img src="image_3.png" /></figure>

### 3 Helix through 2 points

The strategy is to build a polyhelix through n points first to consider two points in space with a Frenet frame attached to the first point. The problem is then to build a helical segment passing through the two points at its extremities and whose Frenet frame at the first point is the given Frenet frame. Once the first helical segment is known, we can compute the Frenet frame attached at the second point and compute a helical segment passing through the second and third point with the given Frenet frame at the second point. The procedure is then iterated over the remaining points. Therefore, we first consider the problem of computing a helical segment between two points.

**Lemma 3.1.** If $z \neq 0$, there exists a countable set of helical segments from the origin 0 to another point $\mathbf{P} = (x, y, z) \in \mathbb{R}^3$ with Frenet frame at the origin aligned with the axes: $\mathbf{t} = (1, 0, 0)$, $\mathbf{n} = (0, 1, 0)$, $\mathbf{b} = (0, 0, 1)$. If $z = 0$ there exists a single straight line (when $y = 0$) or a single arc of circle joining the origin to the $\mathbf{P} = (x, y, 0) \in \mathbb{R}^3$ with Frenet frame at the origin aligned with the axes.

**Proof.** We take the points $\mathbf{0} = (0, 0, 0)$ and $\mathbf{P} = (x, y, z)$ and vectors $\mathbf{t} = (1, 0, 0)$, $\mathbf{n} = (0, 1, 0)$, $\mathbf{b} = (0, 0, 1)$ attached to the origin. First, we consider the case where $yz \neq 0$. We also define the plane

$$ \Pi: \alpha_1 x + \alpha_2 y + \alpha_3 z = 0 $$

as the plane passing through the origin and perpendicular to the vector $\alpha = (\alpha_1, \alpha_2, \alpha_3)$. Without loss of generality, we choose $\alpha_3 = 1$ (the case $\alpha_3 = 0$ corresponding to $yz = 0$). The projection of a helix of vector axis $\alpha$ passing through $\mathbf{0}$ on the plane $\Pi$ is a circle $C_{\alpha}$ (See Fig.2). The condition on the vector $\alpha$ is that

* **C1.** The helix axis is orthogonal to the normal vector:

$$ (18) \qquad \alpha \cdot n = \alpha_2 = 0, $$

which implies that $\mathbf{n}$ is in the plane $\Pi$. Therefore, the remaining unknown is $\alpha_1$.

* **C2.** The projection of the tangent vector $\mathbf{t}$ on $\Pi$ is tangent to the circle $C_{\alpha}$. Let $\mathbf{q}$ be the center of $C_{\alpha}$ then

$$ (19) \qquad \mathbf{q} = R\alpha \times \mathbf{t} $$

where $R$ is undetermined. Due to the particular choice of axes, we have

$$ (20) \qquad \mathbf{q} = R\mathbf{n} = (0, R, 0), $$

and we see that $R$ is the signed radius of the circle $C_{\alpha}$ and $|R|$ is the radius of the helix of axis $\alpha$.
• C3. The projection **p** of **P** on Π lies on the circle $C_α$. The projection of **P** is

$$ (21) \qquad \mathbf{p} = \mathbf{P} - \left( \mathbf{P} \cdot \frac{\boldsymbol{\alpha}}{|\boldsymbol{\alpha}|} \right) \frac{\boldsymbol{\alpha}}{|\boldsymbol{\alpha}|} $$

We use **p** to find R by requiring that $|\mathbf{q} - \mathbf{p}| = |\mathbf{q} \cdot \mathbf{q}|$:

$$ (22) \qquad R = \frac{y^2(1 + \alpha_1^2) + (x - \alpha_1 z)^2}{2y(1 + \alpha_1^2)}. $$

<figure><img src="image_4.png" /><figcaption>**Figure 2** The geometry. The helix has an axis $\alpha$ starting at the point $\mathbf{q}$. The projection of the helix on the plane Π is the circle $C_α$ of radius R that is found by projecting **P** on Π.</figcaption></figure>

The curvature and torsion of the helix can be expressed as a function of $\alpha_1$ by using Eqs. (11-12),

$$ (23) \qquad \delta = \left| \frac{\mathbf{n}}{R} \cdot \left( \frac{\boldsymbol{\alpha}}{|\boldsymbol{\alpha}|} \times \mathbf{t} \right) \right| = \frac{1}{\sqrt{R^2(1 + \alpha_1^2)}} $$

and

$$ (24) \qquad \kappa = \frac{1}{R(1 + \alpha_1^2)}, \quad \tau = \frac{\alpha_1}{R(1 + \alpha_1^2)}. $$

Since $\kappa$ and $\tau$ are both functions of $\alpha_1$, we can compute a general helical segment of length L from 0 with a given Frenet frame and require that it passes through **p**. We compute

$$ (25) \qquad \mathbf{Y}(s) = A(\kappa(\alpha_1), \tau(\alpha_1); s) \cdot (1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)^T, $$
to obtain the condition on the last three components of **Y**:

$$ (26) \qquad Y_{10}(L) = x, \quad Y_{11}(L) = y, \quad Y_{12}(L) = z. $$

This is a system of three equations for the two unknowns $\alpha_1$ and $L$ that read, respectively,

$$ (27) \qquad \sin(\delta L) = ((\alpha_1^2 + 1)x - \alpha_1^2 L) \delta, $$

$$ (28) \qquad \cos(\delta L) ((x + \alpha_1 z)^2 + y^2(1 + \alpha_1^2)) = (x - \alpha_1 z)^2 - y^2(1 + \alpha_1^2), $$

$$ (29) \qquad \sin(\delta L) \alpha_1 = (\alpha_1 L - z(\alpha_1^2 + 1)) \delta. $$

This still constitutes an over-determined system of equations (3 equations for the two unknowns $L$ and $\alpha_1$). However, it is easy to verify that $\cos(\delta L)^2+\sin(\delta L)^2-1=0$. Therefore, once a solution of the first and third equation is known, the value of $\cos(\delta L)^2$ can be computed and the only remaining condition to be verified is the sign of $\cos(\delta L)$ which leads to the condition

$$ (30) \qquad \operatorname{sign}[\cos(\delta L)] = \operatorname{sign}[(x - \alpha_1 z)^2 - y^2(1 + \alpha_1^2)] $$

Therefore, if there exists a solution $\alpha_1$ with positive $L$ that satisfies both (27), (29), and (30), it automatically verifies (28). We now show that such solutions exist. Equations (27) and (29) can be simplified to

$$ (31) \qquad L = x + \frac{z}{\alpha_1}, $$

$$ (32) \qquad \sin\left(\frac{\delta(x\alpha_1 + z)}{\alpha_1}\right) = (x - z\alpha_1)\delta, $$

where

$$ (33) \qquad \delta = 2 \frac{\sqrt{1 + \alpha_1^2}|y|}{y^2(1 + \alpha_1^2) + (x - \alpha_1 z)^2}. $$

The problem of finding a helical segment is reduced to finding a solution of (32) such that $L$ is positive and (30) is satisfied. Once this solution is found, $\kappa$ and $\tau$ are determined and $L$ is given by (31). Note that, there exist many different solutions for (32), corresponding to different possible helical segments. In general to define a polyhelix and unless otherwise mentioned we look for the principal helix, that is the solution with the smallest positive length $L$.

To understand the solutions of Eq. (32) it is useful to look at it as a function of $\beta = 1/\alpha_1$, in which case, it reads

$$ (34) \qquad \sin(\delta x + \delta z \beta) = x \delta - \delta \frac{z}{\beta}, \qquad \delta = \frac{2|y|\beta\sqrt{\beta^2 + 1}}{\beta^2(x^2 + y^2) - 2xz + y^2 + z^2}. $$

In the limit of large positive $\beta$, the r.h.s. of (34) tends to $\frac{2x|y|}{x^2+y^2}$. Since $|\frac{2xy}{x^2+y^2}| \le 1$, $\forall x, y$, Eq. (34) always as an infinite number of solutions (see Fig.3). Note that for large $\beta$, $\sin(\delta x + \delta z \beta)$ tends to $\sin(\frac{2|y|z}{x^2+y^2}\beta)$. In the same limit, the l.h.s. of
condition(30) tends to sign($x^2 - y^2$) and we conclude that every other solution satisfies condition (30). Therefore, there exist infinitely many admissible helical segments. Note that the situation is similar for large negative $\beta$.

<figure><img src="image_5.png" /><figcaption>**Figure 3** The left and right hand sides of eq.(34) as a function of $\beta$.</figcaption></figure>

Second, we turn our attention to the case $yz = 0$ and directly solve the problem by considering the general helical segment starting at **0** with Frenet frame aligned with the three axes as before. The system of equation is then

$$ (35) \quad (x, y, z) = \left( \frac{\sin(\delta L) \kappa^2 + \tau^2 \delta L}{\delta^3}, \frac{\kappa (1 - \cos \delta L)}{\delta^2}, \frac{\kappa \tau (\delta L - \sin \delta L)}{\delta^3} \right). $$

First consider the case $y = 0$ and $z \neq 0$. Since $\kappa \neq 0$ (otherwise, the helix degenerates to a straight line, which implies $z = 0$), we have $\delta L = 2n\pi$ and

$$ (36) \quad y = \frac{2n\pi\tau^2}{\delta^3}, \quad z = \frac{2n\pi\kappa\tau}{\delta^3}. $$

Then the solutions are:

$$ (37) \quad \kappa = \pm \frac{2n\pi xz}{(x^2 + z^2)^{3/2}}, \quad \tau = \pm \frac{2n\pi x^2}{\sqrt{x^2 + z^2}}, $$

where the signs are both either positive or negative. This concludes the proof of the first part of the lemma.

Second, consider the case $z = 0$. Since both tangent and normal vectors are in the $(x, y)$ plane, the solution must be planar, that is either a circle or a straight line. The helical segment is a straight line if $y = z = 0$, in which case $\kappa = \tau = 0$.
and $L = x$. Assume now that $y \neq 0$ and the remaining problem is therefore to find an arc of circle, that is to solve the equation

$$ (38) \qquad x = \frac{\sin \kappa L}{\kappa}, \quad y = \frac{1 - \cos \kappa L}{\kappa}. $$

which leads to

$$ (39) \qquad \kappa = \frac{2y}{x^2 + y^2} $$

and

$$ (40) \qquad \tan(\kappa L) = \frac{x\kappa}{1 - y\kappa}. $$

Note that only the solution with smallest positive $L$ is valid since the other ones represent multi-covered circles. Therefore, there is only one solution and this concludes the proof of the second part of the lemma. □

**Example 3.2.** Consider $\mathbf{P} = (2, 3, 4)$. Then the solution of (32) which leads to the smallest length and compatible with (30) is $\alpha_1^{(1)} \approx 0.7487$, $L^{(1)} \approx 7.3425$, $\kappa^{(1)} \approx 0.3991$, and $\tau^{(1)} \approx 0.2988$. The next compatible solution is $\alpha_1^{(2)} \approx 0.3106$ which leads to $L^{(2)} \approx 14.8778$, $\kappa^{(1)} \approx 0.5746$, and $\tau^{(1)} \approx 0.1785$. These two possible solutions and the third one (not given explicitly here) are shown in Fig.4.

<figure><img src="image_6.png" /><figcaption>**Figure 4** Three possible helical segments with given Frenet frame at the origin (aligned with the three axes) and joining the point $\mathbf{P} = (2, 3, 4)$.</figcaption></figure>

**Example 3.3.** As an example of a the first degenerate case ($y = 0$). Take the point $\mathbf{P} = (2, 0, 4)$, we show the two first solutions (with both signs). Note that in this case, due to the symmetry of the problem all these solutions have the same length $L$ and are therefore all principal helices.

**Example 3.4.** As an example of a the second degenerate case ($z = 0$), we take the point $\mathbf{P} = (2, 3, 0)$. The solution is an arc of circle as shown in Fig.6.
<figure><img src="image_7.png" /><figcaption>**Figure 5** Four possible helical segments with given Frenet frame at the origin (aligned with the three axes) and joining the point $\mathbf{P} = (2, 0, 4)$.</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>**Figure 6** The arc of circle with given Frenet frame at the origin (aligned with the three axes) and joining the point $\mathbf{P} = (2, 3, 0)$.</figcaption></figure>
So far we have restricted our analysis to the case where one of the points is at the origin and the Frenet frame is along the axes. The general case is covered by the following proposition.

**Proposition 3.5.** Consider two points **A** and **B** with a Frenet matrix $F_A$ whose columns are the vectors ($t_A, n_A, b_A$) at **A**. Let $\mathbf{P} = (x, y, z) = F_A^T \cdot (\mathbf{B} - \mathbf{A})$. Then, if $z \neq 0$, there exists a countable set of helical segments from the origin **A** to another point **B** with Frenet frame $F_A$ at **A**. If $z = 0$ there exists a single straight line (when $y = 0$) or a single arc of circle joining **A** to **B** with Frenet frame $F_A$ at **A**.

**Proof.** We use Lemma 3.1 by reducing the problem to the previous one. We place the frame of reference at the point **A** and rotate the axes to align them with the Frenet frame. The coordinates of the point **B** in this new basis are the values $\mathbf{P} = (x, y, z)$ used to identify the helical segment in Lemma 3.3.1. That is, we write

$$ (41) \qquad \mathbf{B} - \mathbf{A} = x\mathbf{t}_{\mathbf{A}} + y\mathbf{n}_{\mathbf{A}} + z\mathbf{b}_{\mathbf{A}}. $$

If we introduce the matrix $F_A$ whose columns are the vectors $t_A, n_A, b_A$, the last relation simply reads

$$ (42) \qquad \mathbf{B} - \mathbf{A} = F_A \cdot \mathbf{P}, $$

and, since $F_A$ is an orthogonal matrix, we have

$$ (43) \qquad \mathbf{P} = F_A^T \cdot (\mathbf{B} - \mathbf{A}). $$

□

Once the values of $\kappa, \tau$ and $L$ have been identified, the curve is defined by the relation (14) with $\mathbf{Y}(0)$ defined by $F_A$ and **A**.

# 4 Polyhelices through n points

**Theorem 4.1.** Given a set of n ordered points in space {$Q_i, i = 1, \dots, n$}, there exists infinitely many polyhelices passing through these points.

**Proof.** The proof is done by building a polyhelix through repeated applications of Proposition 3.5 for each successive pair of points. The algorithm proceeds as follows

* Step 1. Start with $Q_1$ and $Q_2$ and the canonical Frenet frame $F_1 = I$ (aligned with the axes). Compute $\mathbf{P} = Q_2 - Q_1$.

* Step 2. From $\mathbf{P}$, compute the value of $\alpha_1$ and $L$ solution of Eqs (32) and (31) that satisfies condition (30).

* Step 3. Compute $\omega_1 = (\kappa(\alpha_1), \tau(\alpha_1), L)$ that defines the helical segment.
* Step 4. From Eq. (14), compute the Frenet basis $F_2$ at the point $Q_2$. Compute the new local components $\mathbf{P} = F_2^T \cdot (Q_3 - Q_2)$.

* Step 5. Following Step 2 and Step 3, compute $\omega_2$.

* Step 6. Iterate Step 4 to 5 to the last point.

For a given initial Frenet frame and unless $z = 0$ for a particular segment, there exists a countable set of values of $\omega$ for each segment, hence infinitely many polyhelices. If $z = 0$ for all segments, all points are in the $(x, y)$ plane and there is a unique planar polyhelix made of arcs of circles for this particular choice of initial Frenet frame. However, the choice of initial Frenet frame is arbitrary and there exists infinitely many polyhelices. □

**Example 4.2.** To illustrate the theorem, consider the following set of points $\{Q_1 = (0,0,0), Q_2 = (2,3,4), Q_3 = (6,9,6), Q_4 = (0,0,8)\}$. We computed a polyhelix passing through these points. The values of $(\alpha_1, \kappa, \tau, L)$ found for this example can be found in Table 1.

<figure><img src="image_9.png" /><figcaption>**Figure 7** A polyhelix through the points $Q_1 = (0,0,0)$, $Q_2 = (2,3,4)$, $Q_3 = (6,9,6)$, $Q_4 = (0,0,8)$.</figcaption></figure>

<table><caption>**Table 1** Values of the parameters for the polyhelix shown in Fig. 7</caption><thead><tr><th>Helical segment</th><th>α<sub>1</sub></th><th>L</th><th>κ</th><th>τ</th></tr></thead><tbody><tr><td>Q<sub>1</sub> → Q<sub>2</sub></td><td>0.7487</td><td>7.3425</td><td>0.3991</td><td>0.2988</td></tr><tr><td>Q<sub>2</sub> → Q<sub>3</sub></td><td>0.3471</td><td>15.9826</td><td>-0.2638</td><td>-0.0916</td></tr><tr><td>Q<sub>3</sub> → Q<sub>4</sub></td><td>-0.3360</td><td>16.9454</td><td>-0.1866</td><td>0.0627</td></tr></tbody></table>

<table><caption>**Table 2** Values of the parameters for the polyhelix shown in Fig. 8</caption><thead><tr><th>Helical segment</th><th>α<sub>1</sub></th><th>L</th><th>κ</th><th>τ</th></tr></thead><tbody><tr><td>Q<sub>1</sub> → Q<sub>2</sub></td><td>0.3106</td><td>14.8777</td><td>0.5746</td><td>0.17848</td></tr><tr><td>Q<sub>2</sub> → Q<sub>3</sub></td><td>0.0963</td><td>31.916</td><td>-0.2894</td><td>-0.0279</td></tr><tr><td>Q<sub>3</sub> → Q<sub>4</sub></td><td>0.0012</td><td>93.269</td><td>-0.1745</td><td>-0.0002</td></tr></tbody></table>
<figure><img src="image_10.png" /><figcaption>**Figure 8** A second polyhelix through the points $Q_1 = (0,0,0)$, $Q_2 = (2,3,4)$, $Q_3 = (6,9,6)$, $Q_4 = (0,0,8)$. Note that the last helical segment is not a circle but a very flat helix (with torsion $\tau = -0.0002$) and there is no self-intersection</figcaption></figure>

# 5 Conclusions

Polyhelices are remarkably simple curves that can be defined by a sequence of the triples (curvature, torsion, length). They are, by construction of class $C^1$ and further enjoy the property that their Frenet frames is also continuous. They have already shown to be useful in the representation of protein structures [HG06b, HG06a] where they are used to describe long structures with few parameters and are therefore a convenient representation to explore the space of possible protein shapes.

Here we showed that given a set of $n$ points in space, there exist infinitely many polyhelices through them. The construction is particularly simple as it only rests on one root finding for each segment. The curve and the Frenet frame is then parametrized in arc length by a product of matrices. An ordered set of $n$ points consists of $3n$ data points. A polyhelix through $n$ points is also defined by $3n$ data points but it defines not only the set of $n$ points but also the curve going through them. It is therefore a particularly efficient and useful exact representation of points and curves.

The analysis presented here can be readily generalized by considering more general local basis than the Frenet frame. The easiest generalization consists in considering the director basis (made out of a tangent vector and a pair of vectors in the normal plane to build an orthonormal basis). This provides an extra degree of freedom (the angle between the Frenet normal vector and one of the basis vector in the normal plane) that can be used to specify some other properties of the curve (such as fixing its curvature, or finding the helical segment with smallest arc length). A second important generalization consists in defining polyhelices for closed curves. This can be done efficiently by first building a polyhelix through $n$ points and then adding a point between the last point and the first so that the Frenet frame (or its generalization) is continuous at the origin. The representation of closed curves by polyhelices could then be used to study property of ideal knots [GM99] and could therefore be seen as a natural generalization of bi-arcs [CLMS05].
References

[CLMS05] M. Carlen, B. Laurie, J. H. Maddocks, and J. Smutny. Biarcs, global radius of curvature, and the computation of ideal knot shapes. In J. A. Calvo, K. Millet, E. Rawdon, and A. Stasiak, editors, *Physical knots at les Diablerets*, pages 75–108. World Scientific, Singapore, 2005.

[CSB96] J. A. Christopher, R. Swanson, and T. O. Baldwin. Algorithms for finding the axis of a helix: fast rotational and parametric least-squares methods. *Computers Chem.*, 20:339–345, 1996.

[FSW02] R. Frühwirth, A. Strandlie, and W. Waltenberger. Helix fitting by an extended riemann fit. *Nuclear Instruments and Methods in Physics Research A*, 490:366–378, 2002.

[GM99] O. Gonzalez and J. H. Maddocks. Global curvature, thickness, and the ideal shapes of knots. *Proc. Natl. Acad. Sci. USA*, 96:4769–4773, 1999.

[HG06a] A. Hausrath and A. Goriely. Continuous representations of proteins i: construction of coordinate models from curvature profiles. *Preprint*, 2006.

[HG06b] A. Hausrath and A. Goriely. Protein architectures predicted by a continuum representation of fold space. *Protein Science*, 15:753–760, 2006.

[KR99] M. J. Keil and J. Rodriguez. A method for generating compound spring element curves in contact with cylindrical surfaces. *J. Geometry and Graphics*, 3:67–76, 1999.

[Wei02] H. Weiss. Dynamics of geometrically nonlinear rods: II. *Nonlinear Dynamics*, 30:383–415, 2002.