Find the control points in 3D space of a 2D Bézier mapped on the parametric space of a (3D) Bézier patch

72 Views Asked by At

I was able to solve this for a Bézier curve of order 1 on a bicubic patch (it is a Bézier curve of order 6 Image here ) But for higher degree curves I couldn't find anything. The question is too long for search engines. I know CAD softwares does it (hopefully without approximations/solver), it must be inside some paper like most of CAD maths, or am I missing something ?

1

There are 1 best solutions below

3
On BEST ANSWER

I’ll suggest two possible approaches …

First approach: Convert your curve and surface from Bézier-Bernstein form into power basis (monomial) form. Suppose the surface is $(u,v) \mapsto S(u,v)$ and the curve is $t \mapsto (u(t),v(t))$. Then you can just substitute the curve equation into the surface equation, and you’ll get a 3D curve equation $t \mapsto S(u(t),v(t))$, again in power basis form. Now convert that curve back to Bézier-Bernstein form. The point is that doing function composition is much easier in the power basis than the Bernstein basis, though it’s still a huge mess of algebra. I’d recommend you get a computer algebra system, like Mathematica or Maple to help.

Second approach. If the surface has degrees $m \times n$ and the 2D curve has degree $p$, then you know the final result is a 3D Bézier curve of degree $k = mp + np$. So calculate $k+1$ points on the 3D curve, and interpolate them with a Bézier curve of degree $k$. For simplicity, you can calculate points $Q_0, Q_1, \ldots, Q_k$ at parameter values $\tau_i = i/k$ for $i=0,1,\ldots,k$. Then you need to construct a Bézier curve $C$ that has $C(\tau_i) = Q_i$ for $i=0,1,\ldots,k$. Of course, you do this just by solving a linear system of equations to find the control points. If you always use the same $\tau_i$ values, then the matrix of the linear system is fixed, and you can just invert it once (perhaps exactly), and then re-use it over and over again.

Also, it might help to read my answer to this question (and maybe the papers I cited).

If you want to try doing the function composition in the Bernstein basis, then this paper provides some relevant formulas, though I find it pretty hard to read, personally.