Describing Bézier surfaces

534 Views Asked by At

I'm having some trouble with Bézier surfaces and I was hoping someone could help me. Question is rather simple: lets say we have 2 Bézier curves with control points: P00,P10,P20,P30 and second P00,P01,P02,P03. So, we have 2 cubic curves which have one control point (P00) in common. My question is: are those two curves and their control points enough data to construct a Bézier surface? I have studied the formula, and I got the procedure, but what I can not figure out is: can I compute the other control points (P10,P11,P12,P13 and so on), or they must be given as input in order for surface to be defined? And if I can compute them, how? I know this might sound like stupid question but im interested in application of these surfaces, meaning I'm not a mathematician, so i skipped some steps :)

1

There are 1 best solutions below

4
On BEST ANSWER

If $\mathbf{A}: [0,1] \to \mathbb{R}^3$ and $\mathbf{B}: [0,1] \to \mathbb{R}^3$ are any two parametric curves whatsoever, and $\mathbf{A}(0) = \mathbf{B}(0) = \mathbf{C}$, then you can define a surface $\mathbf{S}(u,v)$ by $$ \mathbf{S}(u,v) = \mathbf{A}(u) + \mathbf{B}(v) - \mathbf{C} \quad\quad (0 \le u \le 1 \; ; \; 0 \le u \le 1) $$ Note that $\mathbf{S}(u,0) = \mathbf{A}(u)$ for all $u$, so one edge of this surface is the curve $\mathbf{A}$. Similarly, $\mathbf{S}(0,v) = \mathbf{B}(v)$ for all $v$, so the adjacent edge is the curve $\mathbf{B}$.

Conceptually, the surface is formed by "sweeping" the curve $\mathbf{A}$ along the curve $\mathbf{B}$, keeping its orientation fixed. Or, equivalently, you can sweep $\mathbf{B}$ along $\mathbf{A}$; the situation is symmetric, so you'll get the same result either way. These things are sometimes known as "translational sweep surfaces" in the literature. See, for example "The NURBS Book" by Piegl and Tiller, section 10.4.

Now the specific case of cubic Bézier curves that you asked about.

Suppose $\mathbf{A}$ is a cubic Bézier curve with control points $\mathbf{P}_{0}$, $\mathbf{P}_{1}$, $\mathbf{P}_{2}$, $\mathbf{P}_{3}$, and $\mathbf{B}$ is a cubic Bézier curve with control points $\mathbf{Q}_{0}$, $\mathbf{Q}_{1}$, $\mathbf{Q}_{2}$, $\mathbf{Q}_{3}$. And let's assume that $\mathbf{P}_{0} = \mathbf{Q}_{0} = \mathbf{C}$, so that the curves have a common start point. Then the translational sweep surface described above is actually a bicubic Bézier surface, and its 16 control points $\mathbf{R}_{ij}$ are given by: $$ \mathbf{R}_{ij} = \mathbf{P}_{i} + \mathbf{Q}_{j} - \mathbf{C} \quad \quad (i = 0,1,2,3\; ; \; j = 0,1,2,3) $$ Here's an example of a simple surface produced this way:

enter image description here

There are many other ways to define a surface from two curves. For example, as you are sweeping one curve along the other, you can rotate it in some way, rather than keeping its orientation fixed.