Number of Curvature Maxima of a 2D Cubic Bezier curve

410 Views Asked by At

I am trying to prove that a standard cubic Bezier curve can only have at most 2 curvature maxima over $t \in [0,1]$. Assuming that no 3 adjacent control points are colinear, the curvature will either have 2 true local maxima, and the curvature at the endpoints will not be locally maximum, or else the curvature will have 0 or 1 true local maxima, but 2 or 1 endpoints will be a local maximum.

Intuitively this appears to be true, and experimentally this holds, but I cannot figure out how to go about proving this. Any direction would be of great help

2

There are 2 best solutions below

2
On

Have you tried writing out the formula for the curvature directly in terms of the polynomials? Note that a standard Bezier curve is really just a way of writing a general cubic curve, so "Bezier" is a red herring here: you're really asking if an arbitrary cubic curve can have more than two curvature extreme on its whole domain.

The curvature formula is something like $(\ddot{x}\dot{y} - \ddot{y} \dot{x})/(\dot{x}^2 + \dot{y}^2)^\frac{3}{2}$. The numerator is therefore a quadratic, and the denominator's the $3/2$ power of a quadratic. I'm not certain whether there's anyting useful to drag out of that, but it might be worth writing out in terms of the actual coeffs of $x$ and $y$.

0
On

If I understand you correctly, then your postulated result is not true. I can certainly produce a Bezier curve whose curvature increases monotonically from one end to the other. So, there is only one local maximum, and it's located at one end of the curve.

Take, for example, the curve with $\mathbf{P}_0 = (0,0)$, $\mathbf{P}_1 = (4,1)$, $\mathbf{P}_2 = (7,1)$, $\mathbf{P}_3 = (9,0)$. Its curvature increases monotonically from $t=0$ to $t=1$. The only local maximum is at $t=1$.

Another example: $\mathbf{P}_0 = (0,0)$, $\mathbf{P}_1 = (4,1)$, $\mathbf{P}_2 = (5,1)$, $\mathbf{P}_3 = (9,0)$. Its curvature increases monotonically from $t=0$ to $t=0.5$, and then decreases monotonically from $t=0.5$ to $t=1$. The only local maximum is at $t=0.5$.

And, just to make things more confusing, here's a curve with three local maxima: $\mathbf{P}_0 = (0,0)$, $\mathbf{P}_1 = (7.5,0.5)$, $\mathbf{P}_2 = (1.5,0.5)$, $\mathbf{P}_3 = (9,0)$.

To analyse curvature, the suggestion given by @John seems reasonable: write the curve in polynomial form, and use a computer algebra system like Maple or Mathematica to calculate the curvature $\kappa$ function and its derivative.

If you do this, you will find that the numerator of $d\kappa/dt$ is a polynomial of degree 5 in $t$. From there, I don't immediately see how to proceed.