To construct a polynomial using Bézier Curves.

1.3k Views Asked by At

Given a polynomial equation (can be of any degree) how do we find the control points for the Bézier curve that follows the polynomial equation?

Note:

  1. I know that doing this is counter-intuitive because the polynomial equation gives us the points of the curve and hence we don't need to use the Bézier curve method in the first place. But I do want to produce a curve this way for my application.

  2. The Centripetal Catmull–Rom spline is a way to produce a curve passing through 4 points but that is not what we are looking for here.

  3. The question : Find control points to produce a given curve was very close to this question but it is not the same.

1

There are 1 best solutions below

1
On BEST ANSWER

Let $F(t)$ be the given polynomial. I'm going to assume that $F$ is cubic (the most common case). Other degrees can be handled using the same techniques, but the notation is much more cumbersome.

One approach is to find a symmetric multi-affine function $G(u,v,w)$, called the blossom or polar form of $F$, such that $G(t,t,t)=F(t)$ for all t. Then the control points of the Bezier representation of the polynomial are $G(0,0,0)$, $G(0,0,1)$, $G(0,1,1)$, $G(1,1,1)$. This is explained in more detail here.

So, how to construct $G$, given $F$? In the formula for $F(t)$, you ...

  • replace $t^3$ by $uvw$
  • replace $t^2$ by $\tfrac13(vw+wu+uv)$
  • replace $t$ by $\tfrac13(u+v+w)$

So, for example, if $F(t) = t^3 + 3t^2 - 6t$, then $G(u,v,w) = uvw + vw +wu+uv - 2(u+v+w)$.

Another approach is to calculate some points on the curve, using the function $F$, and then use interpolation. If you look up this term, you will find lots of material. For each data point that's interpolated, you get a linear equation involving the (unknown) control points. Combining these equations, you get a linear system that you can solve to get the control points. There's a good description on this web page.