be a weight sequence, where wi,j > 0 is the weight corresponding to the knot position (ui,vj), i=0, ... , 2m+1, j=0, ..., 2n+1, and let
2. Approach: Since a NURBS surface is a piecewise parametric rational polynomial function, every such piece can be expressed by Bezier coefficients and local weights. We derive smooth joining conditions in terms of these parameters. Hence, it is necessary to investigate the relations between control points and (global) weights with Bezier coefficients and local weights. Our approach is summarized as follows.
Step 1. Express rational polynomial pieces of a NURBS surface in terms of Bezier coefficients and local weights.
Step 2. Derive C0, C1, and G1 joining conditions of rational polynomial pieces in terms of Bezier coefficients and local weights.
Step 3. Modify Bezier coefficients and local weights along the boundary strip of one surface, say S2 , to join in a smooth fashion.
Step 4. Convert Bezier coefficients and local weights to new control points and global weights of S2 along the boundary strip.
Step 5. Extend to multiple surfaces.
Let B3,j,a,b denote the truncated cubic Bernstein polynomials relative to the interval [a, b], i.e.,
The restrictions of the B-splines M4, u,i and M4, v,i between two adjacent distinct knots are given by
Then the NURBS surface S in (1.6) can be written as follows:
We call di,j,k,l, k, l=0, ... , 3, Bezier coefficients and wi,j,k,l , k, l=0, ..., 3, local weights of the NURBS surface S in (1.6) or (2.4). To convert control points and weights in (1.6) to Bezier coefficients and local weights in (2.4), we need the following notations:
Then the conversion formulas are given as follows:
To convert Bezier coefficients and local weights in (2.4) back to control points and (global) weights, we need the bi-cubic Bezier surface patches to be put together in the C1 fashion. In other words, the Bezier coefficients and local weights satisfy
Under these assumptions, the conversion algorithm is given below.
3. Theory and Algorithms:
Let us begin with the
discussion of C0, C1,
and G1 smoothness joining conditions for
two rational Bezier surface patches. First of all, we discuss the conditions
under which two Bezier curves represent exactly the same curve. Let
c(t): t in [0,1],
(
):
in [0,1],
be two cubic rational Bezier curves that have the Bernstein forms
respectively, where B3,j
are Bernstein polynomials relative to [0,1]; dj
,
j
are Bezier coefficients; and
wj,
j
are local weights.
Suppose that dj-
d0, j=1, 2, 3, are linearly independent.
Then for any differentiable parameterization
in [0, 1],
(
)
represents the same curve as c(t) if and only if
for some constant
not equal to 0.
We now consider two rational bi-cubic Bezier surface patches
along the boundaries v=v2j
and
=
2q.
The two rational Bezier surface patches s(u,v) and
(
,
)
in (3.4)--(3.5), are said to be C0
continuously joined, if there exists a reparameterization
=
gi(u) such that
By using (3.3), and assuming that the Bezier coefficients
of s are in general position, i.e.,dk,0
-
d0,0, k=1, 2, 3 are linearly independent.
Then,
and s represent the
same curve along the boundaries
v=v2j and
=
2q
if and only if
We next consider C1 connection
of two rational bi-cubic Bezier surface patches s and
in (3.4)--(3.5) along the boundaries u=u2i and
=
2p. The two rational bi-cubic
Bezier surface patches s(u,v) and
(
,
)
in (3.4)--(3.5) are said to be C1 continuously
joined, if s(u,v) and
(
,
) are
C0
continuously joined, as defined by (3.6)--(3.7), and that, since v and
are in opposite directions,
It is very hard, if not impossible, to find a useful necessary and sufficient condition for C1 connection. For example, in the monograph ``The NURBS Book'' by Piegal and Tiller [4], not even sufficient conditions are shown.
First, a typical choice for gi(u) in (3.6) is the linear transformation, i.e.,
Then it follows from (3.6)--(3.8) that s(u,v) and
(
,
)
are C1
continuously joined, if
where it is assumed, without loss of generality, that w0,0
=
0,0.
Next, we consider C1 joining
of s and
along a
common boundary u=u2i+2
=
2p,
where [v2j,v2j+2
]=[
2q
,
2q+2].
We give a simple sufficient condition which will be used in our algorithms
to connect two bi-cubic NURBS surfaces together. To motivate our sufficient
conditions, let us take the partial derivative of s with respect
to u along the boundary u=u2i+2 =
2p and
[v2j,
v2j+2]=[
2q,
2q+2],
i.e.,
In order to join s and
in C1
fashion, we have to assume that they are already continuous over the common
boundary. By (3.8), we may assume that
In addition, assume that
Then s and
are joined in C1
fashion.
Next we consider the two rational Bezier surface patches
s and
in (3.3)--(3.4) are connected in a G
1
fashion. That is, not only s and
are joined continuously
along their boundaries v=v2j,
u in [u2i,u2i+2]
and
=
2q,
in [
2p,
2p+2],
but there exists a unique plane which is tangent to both rational Bezier surface
patches s and
at each point on their common boundaries
also. Equivalently, there exist rational functions
(t),
(t), and
(t) such that
(see
[3] ). To facilitate our discussion, we will only
consider
(t)=0. In fact, this is the case
when we studied with
G1 connection of bi-cubic B-spline surfaces
in
[1,2]. The following is a simple sufficient condition to ensure that
two surfaces are connected in a G1 fashion:
Next, we turn to the discussion of joining NURBS surfaces. In addition to the NURBS surface S in (2.4), we consider another NURBS surface
with two knot sequences
and weight sequences
={
i,j ,
i=0, ..., 2
+1, j=0, ..., 2
+1}.
We say that the two knot sequences u as defined in (1.2) and
as in (3.23) are proportional if
where
= min{m,
} and
's are defined in
(2.2) and
i's by
We have shown that if the knot sequences u and
of two NURBS surfaces S1and
S2 are proportional, then we can
modify the control points and the (global) weights of S
2 by letting
to join S2 with S1 without any gaps (i.e., continuously).
We remark here that the proportionality of the knot sequences
u and
is necessary.
In order to join S1
and S2 continuously under no assumption
of the knot sequences, we have to adjust the Bezier coefficients and local
weights, as follows.
Let S1 be given
in terms of Bezier coefficients and local weights as in (2.4). Similarly,
let di,j,k,l and
i,j,k,l
denote the Bezier coefficients and weights of
S2.
Then if we modify
i,
l,k,0
and
i,l,k,
0 by setting
i,l,k,0=di,
l,k,0
and
i,l,k,
0=wi,l,k,0
, i=1, ...,
, k=0, ..., 3, it is clear that
S1
and S2 are joint together without
gaps.
Next we consider the G1 connection of two NURBS surfaces S1 and S2.
Suppose that the knot sequences u
and
are proportional. Then we can modify the control points and global
weights of both S1 and S
2 by letting
while keeping the other control points and global weights unchanged. Then S1 and S2 are joined in a G1 fashion.
To consider the G1 connection of two NURBS surfaces for arbitrary knot sequences, an easy way is to first modify a portion of the NURBS surface S1 near its boundary by letting the global weights to be equal. More precisely, let
This reduces the portion of S1
over the strip: u2 <= u<=
u2
,
v2 <= v <= v6
to be bi-cubic B-spline surface. Similarly, let
Then the portion of
S2 over the strip
2 <=
u <=
2
,
2
<= v<=
6,
is also reduced
to a bi-cubic B-spline surface. Then we can apply the algorithm in our
earlier work [2]
to connect the resulting B-spline surfaces in a
G1
fashion. We shall continue to investigate the methods for joining two NURBS
surfaces in G1 fashion while minimizing
the change of their control points and global weights.
As an example, we give an algorithm for connecting two NURBS surfaces. We consider equally-spaced knot sequences with double interior knots, i.e., as in (1.2)--(1.3), we require
For the knot sequences
and
in (3.23), we require
Out algorithm can be summarized as follows (see Fig. 1).
-direction, and that m+r <
.
Finally, we demonstrate with a numerical example. Let S1 and S2 be two NURBS surfaces shown in Fig. 4. Here, S1 is simply a plane with equal weights and control points (i,j,1) with 1 < i < 10 and 1< j < 6, and S2 is a true NURBS surface with non-uniform weights. The knot sequences are proportional. In Fig. 5 and Fig. 6, we show that they are joined in C0 and G1 fashion, respectively, by using our algorithms.
Fig. 1. Schematic diagram of parametric domains of two parametric NURBS surfaces S1 and S2
Fig. 2. Schematic diagram of parametric domains of three parametric NURBS surfaces S1, S2 , and S3
Fig. 3. Schematic diagram of parametric domains of four parametric NURBS surfaces S1 , S2 ,S3 , and S4
Fig. 4. Two NURBS surfaces.
Fig. 5. Two NURBS surfaces in joined together without gaps.
Fig. 6. Two NURBS surfaces in G1 .
References
Acknowledgments: This research was supported by the National Science Foundation under the GOALI Program Grant # DMI-9634833 and by the Boeing Company, St. Louis (formerly McDonnell Douglas Corp.)