1
$\begingroup$

Suppose I have a cubic bezier curve with the points $(x_0, y_0); (x_1, y_1); (x_2, y_2); (x_3, y_3)$. I want to show that the resulting function is monotonic for $x$ for the following restrictions:

  • $x_0 < x_1$

  • $x_0 < x_3$

  • $x_2 < x_3$

A bit of background:

A cubic bezier curve is defined as follows:

$P(t) = (1-t)^3P_0 + 3(1-t)^2tP_1 + 3(1-t)t^2P_2 + t^3P_3$ with $P_i = (x_i, y_i)$

In this question we only need to care about the $x$-value of those points.

What I got so far

I tried to simplify the equation a bit and got:

$x(t) = t^3(x_3-3x_2+3x_1-x_0) + 3t^2(x_2-2x_1+x_0) + 3t(x_1-x_0) + x_0$

First we need to get the derivative which is as simple as

$x'(t) = 3(t^2(x_3-3x_2+3x_1-x_0) + 2t(x_2-2x_1+x_0) + t(x_1-x_0))$

I chose this format because now it is easy to show if you move all points to the left by some number $r$ the following is correct:

$x'^*(t) = x'(t)$ with $x^*_i = x_i - r$

because

$x^*(t) = 3(t^2(x_3-3x_2+3x_1-x_0 - (r-3r+3r-r)) + 2t(x_2-2x_1+x_0 - (r-2r+r)) + t(x_1-x_0 - (r-r))) =\\ 3(t^2(x_3-3x_2+3x_1-x_0) + 2t(x_2-2x_1+x_0) + t(x_1-x_0)) = x(t)$

This means that we can actually drop $x_1$ (by setting $x_i = x_i - x_0$) and set the new restrictions as follows and get a new equation:

  • $0 < x_1$

  • $0 < x_3$

  • $x_2 < x_3$

$x'(t) = 3(1-t)^2x_1 + 6(1-t)t(x_1+x_2) + 3t^2(x_2+x_3)$

But now I am kindof stuck and I can't seem to find a solution to the problem. Can anyone help me with this?

$\endgroup$

1 Answer 1

0
$\begingroup$

Your postulated result is not true. Take $x_0 = 1$, $x_1 = 2$, $x_2=0$, $x_3 = 2$. Then the resulting function $t \mapsto x(t)$ is not monotone on $[0,1]$.

In fact $x(t) = 1+3t-9t^2+7t^3$.

So $x'(0) > 0$, $x'(1) > 0$, and $x'(\tfrac12) < 0$.

$\endgroup$
1
  • $\begingroup$ you are absolutely right, I had an error in my restrictions at the first place. Thanks for helping me find that. $\endgroup$ Aug 14, 2014 at 4:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .