Arclength-Parametrized Curves

A parametrized curve $\gamma_[0,L]\to\mathbb{R}^3$ is called parametrized by arclength provided that $\gamma(t)$ moves with unit speed if we interpret $t$ as time:

$\left|\gamma'(t)\right|=1$  for all  $t\in [0,L]$.

Sampling an arclength-parametrization $\gamma$ at evenly spaced points $t=\frac{mL}{n}$ for integer values of $m$ leads to a division of the curve into $n$ arcs of length $\frac{L}{n}$:


The arclength-parametrized curve above was computed using the explicit formula

\[\gamma(t)=\frac{1}{r+r^{2k-1}}\left(\begin{array}{c}r \cos t +\frac{1}{2k-1}r^{2k-1}\cos((2k-1)t) \\ \frac{2r^k}{k}\sin(kt) \\ r\sin t -\frac{1}{2k-1}r^{2k-1}\sin((2k-1)t)\end{array}\right).\]

with $k=3$ and $r=0.977$. In fact this family exhausts all examples known to me of arclength-parametrizations for closed curves that are given in terms of elementary functions. On the other hand, it is a basic fact of Differential Geometry that every curve can be parametrized by arclength. This however involves an integration that most of the time cannot be performed explicitly.

In the discrete world (where curves are polygons with straight edges), parametrization by arclength is easy, because computing the length of any part of the polygon is easy. Houdini provides a node for this purpose called Resample. If we set the parameter Measure of this node to Arc then it will divide the polygon into sub-arcs of equal length:


If the goal is instead to sample the curve by a coarser polygon with equal edge length, one can set the Measure parameter to Chord:


This entry was posted in Lecture. Bookmark the permalink.