Shape invariant of a rational Bézier curve

119 Views Asked by At

I'd like to prove that $c_1=\frac{w_0w_2}{w_1^2}\,$ is a shape invariant for a quadratic Bézier curve, i.e. if the weights $w_i$ are modified but $c_1$ is kept constant, then the shape of the curve doesn't change (the only thing changing is the parametrization). Moreover where can I find the general proof for an nth degree rational Beziér curve?

I tried to search in Farin and NURBS but in both textbooks the proof is skipped. They redirect me to an old PhD thesis that I cannot easily find online.

3

There are 3 best solutions below

2
On BEST ANSWER

An alternative approach, different from my other answer ...

Our basic rational quadratic, in Bézier form, is \begin{equation} \mathbf F(t) = \frac{(1-t)^2w_0\mathbf P_0 + 2t(1-t)w_1\mathbf P_1 +t^2w_2\mathbf P_2} {(1-t)^2w_0 + 2t(1-t)w_1 +t^2w_2} \end{equation} Consider the parameter transformation \begin{equation} t(u) = \frac{r}{r(1-u)+u} \end{equation} This is a so-called linear fractional transformation. If $r>0$, it describes a monotone increasing function that maps $[0,1]$ onto $[0,1]$. It allows us to re-parameterize the Bézier as \begin{equation} \mathbf G(u) = \mathbf F(t(u)) \end{equation} Obviously this does not change the shape of the curve, only the "speed" with which it is traversed as the parameter varies.

Now we substitute from the first equation into the second, using the formulas \begin{equation} t = \frac{r}{r(1-u)+u} \quad ; \quad 1-t = \frac{r(1-u)}{r(1-u)+u} \end{equation} After some simple but tedious algebra, we get \begin{equation} \mathbf G(u) = \frac{(1-u)^2r^2w_0\mathbf P_0 + 2u(1-u)rw_1\mathbf P_1 +u^2w_2\mathbf P_2} {(1-u)^2r^2w_0 + 2u(1-u)rw_1 +u^2w_2} \end{equation} This is a quadratic Bezier curve with the same control points as the original one, but with weights $r^2w_0, rw_1, w_2$. If we set $r = \sqrt{w_2/w_0}$, then the weights become $w_2, w_1\sqrt{w_2/w_0}, w_2$. We can divide each of these by $w_2$ without changing the curve (or it's parameterization), giving us the weights $1, w_1/\sqrt{w_0w_2}, 1$. If we define $c = w_0w_2/w_1^2$, then these weights become $1, 1/\sqrt c, 1$ which shows that the shape of the curve depends only on $c$, and not on the individual values of $w_0, w_1, w_2$.

The case of a general curve of degree $m$ is similar. Let $\phi_i$ denote the $i$-th Bernstein polynomial of degree $m$. Then the original curve is $$ \mathbf F(t) = \frac {\sum \phi_i(t)w_i\mathbf P_i} {\sum \phi_i(t)w_i} $$ Using the same parameter transformation as in the quadratic case, this gives the reparameterized curve $$ \mathbf G(u) = \frac {\sum \phi_i(u)r^{m-i}w_i\mathbf P_i} {\sum \phi_i(u)r^{m-i}w_i} $$ We can choose any value we like for $r$ without changing the shape of the curve. The particular choice $$ r = \left(\frac{w_m}{w_0}\right)^{1/m} $$ is nice because it gives us a curve whose first and last weights are both equal to $w_m$. Then, after dividing all the weights by $w_m$, we get a curve whose first and last weights are both 1.

All of the above is covered in Farin's book, though his explanations are a bit terse.

2
On

A couple of suggestions. I haven’t worked through the details, so I don’t know exactly what the results will be.

  1. Go through the process of implicitizing the rational quadratic to get a conic section curve. You should find that the shape of the conic section curve depends only on $c_1$, not on the individual weights.

  2. Find the intersection of the curve with the line joining the tangent intersection $P_1$ and the mid-point of the chord $P_0P_2$. You should find that this intersection point depends only on $c_1$, which means that the shape of the curve depends only on $c_1$.

1
On

Elaborating on the second idea I suggested in my first answer.

As before, assume that we have a rational quadratic Bézier curve with control points $\mathbf P_0$, $\mathbf P_1$, $\mathbf P_2$, and weights $w_0$, $w_1$, $w_2$. Let $\mathbf M$ be the mid-point of the chord $\mathbf P_0 \mathbf P_2$, so that the line $\mathbf M \mathbf P_1$ is a median of the triangle $\mathbf P_0 \mathbf P_1 \mathbf P_2$. Let $\mathbf S$ be the point where the curve crosses this median. The point $\mathbf S$ is often called the shoulder point of the conic, and the ratio $\rho = \mathbf M \mathbf S / \mathbf M \mathbf P_1$ is called the projective discriminant. The three points $\mathbf P_0$, $\mathbf P_1$, $\mathbf P_2$ together with the $\rho$ value completely determine the conic, and in fact the value of $\rho$ tells us the type of the conic. enter image description here

It is straightforward to show that the shoulder point $\mathbf S$ corresponds to the point with parameter value $t=\tau$ on the Bézier curve, where $$ \tau = \frac{\sqrt w_0}{\sqrt w_0 + \sqrt w_2} $$ Substituting this back into the curve equation, we find that the shoulder point is $$ \mathbf S = \mathbf F(\tau) = \frac{\tfrac12 \sqrt{w_0w_2}\,(\mathbf P_0 + \mathbf P_2) + w_1\mathbf P_1}{\sqrt{w_0w_2} + w_1} $$ If we define $c = w_0w_2/w_1^2$, this becomes $$ \mathbf S = \frac{\tfrac12 \sqrt c \,(\mathbf P_0 + \mathbf P_2) + \mathbf P_1} {\sqrt c + 1} = \frac{ \sqrt c \,\mathbf M + \mathbf P_1} {\sqrt c + 1} $$ and it follows that $$ \rho = \frac{1}{\sqrt c + 1} $$ This shows that the shoulder point (and hence the shape of the curve) depends only on the control points $\mathbf P_0$, $\mathbf P_1$, $\mathbf P_2$ and the value of $c$.