Академический Документы
Профессиональный Документы
Культура Документы
Computer-Aided Design
journal homepage: www.elsevier.com/locate/cad
a 1
0.9 b 1
0.8
0.9
0.7
0.8
0.6 0.7
0.5 0.6
0.4 0.5
0.3 0.4
0.3
0.2
0.2
0.1 0.1
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Fig. 1. (a) The shape of a rounded square can be well captured using just four control points. (b) A spline basis function can be designed to take value one flexibly in a
subregion of its support.
shape with parts of its surface being flat. Let us consider the curve primitive Ci (t ) with high pliability should be associated with
problem of designing the curves shown in Fig. 1(a). If these curves a basis function Bi (t ) with a relatively longer support.
are designed using B-spline or NURBS, more than four control To design a parametric curve using PSP-spline technique, one
points are required to achieve the smoothness for the shape near need only to specify a sequence of intervals according to the set of
the vertices of the specified control polygon, even though the control shapes used in the design process. Then, for each interval, a
control polygon defined by the four corner vertices is sufficient spline basis function Bi (t ) can be built directly as the difference of
enough to capture the main feature of the rounded square. This is two smooth unit step functions built according to the left and right
because, when conventional spline techniques are used, more than ends of the interval. The novel feature of the newly proposed spline
one control points are required to achieve a certain smoothness at design scheme is that they can be tuned to approximate a given
each corner of the square. In addition, all these control points have control polygon, or more generally, a given set of control boundary
to be carefully coordinated, where delicate attention is required. curves, to any required precision. Therefore, the design technique
However, with the shape design technique proposed in this paper, can also be referred to as a kind of polygon smoothing technique.
this design task can be easily accomplished. Furthermore, the proposed design technique can also be used to
As will be seen later, the proposed PSP-spline basis functions approximate certain types of quadratic curves such as circle and
have similar properties to the conventional B-spline basis func- ellipse, though it is impossible to provide an exact representation
tions. For instance, all these spline basis functions are piecewise for these kinds of curves using piecewise polynomial curves.
polynomial and can be built to any required degree of smooth- Another feature of the proposed spline technique is that the
ness. They are all nonnegative and have the property of partition weights considered in the conventional NURBS are interpreted as
of unity. In addition, these basis functions offer flexibility for users the length of the support of the PSP-spline basis functions and
to associate a weight implicitly to each individual control primitive are implicitly built into the spline technique. Therefore, although
and to design a required shape using weighted control primitives. the PSP-spline basis functions are simply represented in piecewise
Furthermore, these spline basis functions are also of the simplicity polynomials, it is even more powerful in designing freeform
and elegancy of the conventional B-spline basis functions. They are parametric shapes than the conventional NURBS.
easy to implement and can be evaluated efficiently. In the rest of the paper, we will first briefly discuss some
The development of these spline basis functions begins with a related work and the basic properties of the required spline basis
practical observation on the energy required to bend a real world functions. Then we consider how to construct smooth piecewise
curved wire, such as iron bars of different radii. To bend a highly polynomial unit step functions, the building blocks of the PSP-
rigid thick iron wire to a required shape, either the wire should be spline technique. This is then followed by the construction of the
sufficiently long or the force used to bend the wire should be very PSP-spline basis functions and how they can be used to design
large. However, for a very pliable wire, it can be easily bent to have smooth freeform curves. In Section 6, the generalization of PSP-
any required curvature due to the fact that the force applied to the spline to 2D is introduced, together with some surface design
wire is only effective in a small range for a highly pliable wire. examples.
Consider a control primitive curve represented in parametric
form as C (t ), t ∈ [a, b], and observe in what a way one can
2. Related work
accommodate the pliability of the curve by introducing a weight
function B(t ), 0 ≤ B(t ) ≤ 1, when modifying the curve C (t ) as
Spline based shape design techniques, such as B-spline and
D (t ) = B(t )C (t ). If we assume that the curve C (t ) represents a
NURBS curves and surfaces, are very powerful in generating
quite rigid shape and we do not want it to be changed significantly
geometric shapes used in computer graphics, computer games
when it is multiplied by B(t ), then the values of B(t ) must be close
and computer aided geometric design [2,3]. However, one still
to 1. In order to be able to bend a rigid curve to achieve a required
finds that these techniques are not very efficient and effective
curvature, the length of the curve segment must be sufficiently
in designing certain complex geometric objects in terms of their
long. With these two considerations in mind, a much clearer
mathematical representation and convenience in specifying the
picture of the required spline basis function emerges. B(t ) should
underlying control polygons, though it is possible in practice
take the shape shown in Fig. 1(b). Suppose a curve is designed using
to design any required shapes using just B-spline or NURBS. It
a sequence of control curves with different degrees of pliability and
has been observed that the design flexibility and capability of
let {Bi (t )}ni=1 be the sequence of spline basis functions developed
a spline based geometric design scheme can be enhanced by
to meet the above mentioned requirements. Then a curve can be
introducing new shape parameters. Several techniques based on
described in the following way in parametric form:
this observation have been proposed so far, such as Beta-spline
n
− [4,5], rational Beta-splines [6], and α -spline [7]. In Beta-spline,
P(t ) = Bi (t )Ci (t ), Barsky and Beatty introduced two shape parameters, known
i=1
as bias and tension, into conventional uniform cubic B-spline
where the blending basis function Bi (t ) is designed according to the modeling scheme by considering the first and the second order
pliability of each specified primitive curve Ci (t ). In other words, a geometric continuity, respectively. Later, Barsky proposed further
396 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
1
the rational Beta-spline by introducing weights to the Beta-spline.
0.9
As the Beta-splines are the extension of conventional B-splines, 0.8
n=4
rational Beta-splines can be considered as a kind of generalization 0.7
n=3
of NURBS. More recently, Tai and Loe proposed another way 0.6 n=2
With (13), the relevant derivatives for H2 (x) and H3 (x) can
1
0.9
immediately be obtained as
0.8
0.7 1
0.6 H2′ (x) = ((2 + x)H0 (x + 2) − 2xH0 (x) + (x − 2)H0 (x − 2)) (14)
4
0.5
1
H3′ (x) = ((x + 3)2 H0 (x + 3) − 3(x + 1)2 H0 (x + 1)
0.4
δ=3.5
0.3 δ=2.5 16
0.2 δ=1.5 + 3(x − 1)2 H0 (x − 1) − (x − 3)2 H0 (x − 3)) (15)
0.1 δ=0.5
1
0
-4 -3 -2 -1 0 1 2 3 4 H3′′ (x) = ((x + 3)H0 (x + 3) − 3(x + 1)H0 (x + 1)
8
Fig. 3. Piecewise polynomial smooth unit step function H3,δ (x) with different rising
+ 3(x − 1)H0 (x − 1) − (x − 3)H0 (x − 3)). (16)
ranges specified using δ . Fig. 4 shows the shapes of the derivatives of H5 (x).
The smooth unit step function Hn (x) defined above can also 5. PSP-spline basis functions
be written explicitly using the Heaviside unit step function in the
following way: With smooth unit step function Hn,δ (x), a new type of spline
basis function can be introduced immediately. Let [a, b] be an
1
n
− n interval with a ≤ b. We define
Hn (x) = (−1)k (x + (n − 2k))n H0 (x + (n − 2k)). (6)
n!2n k=0 (n)
k B[a,b],δ (x) = Hn,δ (x − a) − Hn,δ (x − b), (17)
From (6), the generalized smooth unit step functions of degree where δ is a parameter used for controlling the blending range
(n)
1–3 can also be expressed in the following form: when B[a,b],δ (x) is used as a shape blending function.
Fig. 5 shows the shapes of the cubic PSP-spline basis function
(3)
1 B[2,6],δ (x) defined over the interval [2, 6] with different δ values.
H1 (x) = ((x + 1)H0 (x + 1) − (x − 1)H0 (x − 1)) (7) (n)
2 With the properties of Hn,δ (x), it can be seen that B[a,b],δ (x) has
1 the following properties:
H2 (x) = ((x + 2)2 H0 (x + 2) − 2x2 H0 (x)
8 (n)
1. Nonnegativity. 0 ≤ B[a,b],δ (x) ≤ 1.
+ (x − 2) H0 (x − 2))
2
(8) (n)
2. Smoothness. B[a,b],δ (x) is C n−1 -continuous.
(n)
H3 (x) =
1
((x + 3)3 H0 (x + 3) − 3(x + 1)3 H0 (x + 1) (9) 3. Convexity. For any level values, the level set of B[a,b],δ (x) is an
48 interval.
4. Additivity. For any c ∈ [a, b],
+ 3(x − 1)3 H0 (x − 1) − (x − 3)3 H0 (x − 3)). (10)
(n) (n) (n)
B[a,b],δ (x) = B[a,c ],δ (x) + B[c ,b],δ (x).
As can be observed directly, the degree n smooth unit step
function Hn (x) is strictly monotone increasing over the interval 5. Partition of unity. Let t0 ≤ t1 ≤ t2 ≤ · · · ≤
tn be a sequence of numbers. Then the sequence of PSP-
[−n, n]. We call this interval the rising range of a smooth unit step
spline basis functions built upon the sequence of intervals
function. The smooth unit step function with any specified rising
(−∞, t0 ], [t0 , t1 ], [t1 , t2 ], · · · [tn , ∞) has the property of parti-
range can be defined easily by introducing a nonnegative number
tion of unit. That is,
δ > 0 as follows:
n +1
(n)
−
Hn,δ (x) = Hn (nx/δ). (11) B[ti−1 ,ti ],δ (x) = 1, (18)
i =0
Obviously, Hn,δ (x) = 1 when x ≥ δ , and Hn,δ (x) = 0 when where t−1 and tn+1 are assumed to be −∞ and ∞, respectively.
x < −δ .
Fig. 6 shows the shapes of cubic PSP-spline basis functions
Fig. 3 shows some C 2 -continuous cubic unit step functions (3)
H3,δ (x) with different values of rising range parameter δ . B[a,b],δ (x) defined with the sequence of intervals specified corre-
sponding to the following knot sequence: −5, −4, 0, 2, 5.
The derivatives of smooth unit step functions can be found
The PSP-spline basis functions introduced in (17) are defined
easily for n > 1. From (6), it can be seen that the derivatives of
based on a single smoothing parameter δ . A non-symmetric PSP-
Hn (x) can be directly expressed explicitly using the Heaviside unit
spline basis function can be defined over a given interval [a, b]
step function. When n > 1, in the following way by associating different interval ends with
n different smoothing parameters δa , δb :
1 − n
Hn′ (x) = (−1)k (x + (n − 2k))n−1 (n)
(n − 1)! 2n k=0
k B[a,b],δa ,δb (x) = Hn,δa (x − a) − Hn,δb (x − b). (19)
0.4 0.15
H ′5 (x)
0.1 H ′′5 (x)
0.2
0.05
0
0
-0.05
-0.1
-0.2-
-0.15
-0.4 -0.2
-5 0 5 -5 0 5
0.15 0.2
0.1 H (4)
5 (x)
0.1
0.05 H (3)
5 (x)
0
0
-0.05
-0.1
-0.1
-0.15
-0.2 -0.2
-5 0 5 -5 0 5
δ =0.1 δ =0.5
1 1
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
-2 0 2 4 6 8 10 -2 0 2 4 6 8 10
δ =0.8
1 1 δ =1.2
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
-2 0 2 4 6 8 10 -2 0 2 4 6 8 10
(3)
Fig. 5. Cubic PSP-spline basis function B[2,6],δ (x) defined over the interval [2, 6] with different values of δ .
a 0.3 0.3
δ =0.8 δ =1.0
0.2 0.2
0.1 0.1
0 0
-0.1 -0.1
-0.2 -0.2
-0.3 -0.3
-0.4 -0.4
0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1
0.3 0.3
δ =1.2 δ =1.5
0.2 0.2
0.1 0.1
0 0
-0.1 -0.1
-0.2 -0.2
-0.3 -0.3
-0.4 -0.4
0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1
b w3=0.5
w2=0.5
w3=0.5 w2=0.5 w3=0.5 w2=0.5
1 1 1
0.8 0.8 0.8
0.6 0.6 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0 0 0
-0.2 -0.2 -0.2
-0.4 -0.4 -0.4
-0.6 -0.6 -0.6
-0.8 -0.8 -0.8
-1 -1 -1
w0=0.5 w1=0.5 w0=0.5 w1=0.5 w0=0.5 w1=0.5
0 -1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 0 -1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 0 -1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1
-0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2
Fig. 8. Curves designed using cubic PSP-spline basis functions built with equal spaced intervals.
set of C 2 -continuous PSP-spline basis functions built upon knots with a control point. To let the designed curve interpolate a given
0, 1, 2, . . . , n can be used to blend these control points: control point, one need only to make sure that the length of the
(3) (3) (3) (3) (3) interval used to construct the PSP-spline basis function associated
B[0,1],δ (t ), B[1,2],δ (t ), B[2,3],δ (t ), · · · , B[n−1,n],δ (t ), B[n,n+1],δ (t ). with the control point is longer than 2δ , this is because in this
With this set of spline basis functions, the designed shape can be situation, the spline basis function will take value 1 in the middle
described parametrically as of the interval.
To let the designed curve interpolate the first and the last
n
− (3) control point, we need only use a relatively smaller knot for the
P(t ) = Pi B[i,i+1],δ (t ). (20)
left end of the first interval and a relatively bigger knot for the last
i=0
interval.
Curves displayed in Fig. 8 are designed in this way. To illustrate the strengths of the proposed spline technique,
In practice, it is often required that the designed curve we describe here step by step how to generate a rich set of
interpolates certain control points’ choosing by curve designers. In curves using six control points P1 (−3, 0), P2 (−1, 0), P3 (−3, 5),
the case of B-spline based curve design, this is achieved basically in P4 (3, 5), P5 (1, 0), P6 (3, 0).
two ways, either using repeated control points or using duplicated
knots. For a PSP-spline based curve, to let the designed curve 1. First specify the weights associated with each control point:
interpolate some chosen control points is even simpler. In fact, we
w1 , w2 , w3 , w4 , w5 , w6 .
can interpret the length of the interval upon which the PSP-spline
basis function is built as a kind of weight associated with a control Usually, we assume that each wi > 0 and all the weights sum to
point or a kind of rigidity of the designed curve around a control unity, but this is not essential. These weights can be any positive
point. The longer the interval, the bigger is the weight associated numbers.
400 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
δ=0.5
3 3
δ=0.6
δ=1.0
2 (4) 2
1.5 1.5
1 1
0.5 0.5
0 0
-3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3
Fig. 9. (a) Four PSP-spline curves designed using four sets of weights and the same smoothing parameter value δ (δ = 0.25). (b) Different PSP-spline curves produced using
the same set of weights but different values for smoothing parameter δ .
2. Create a set of knots a0 , a1 , a2 , a3 , a4 , a5 , a6 based on the given where Pi (t ), i = 0, 1, . . . , n, is a set of locally defined parametric
weights, such that curves.
The curve displayed in Fig. 12 is designed in this way, which
wi = ai+1 − ai , i = 0, 1, 2, . . . , 5.
is a blending of a helix curve with a circle. This idea can be very
useful in the area of re-engineering, where parts of the curve to
be designed are reconstructed using data sampled from some real
world objects. With this curve design approach, a curve can be
designed part by part individually. These individually designed
3. For each interval [ai , ai+1 ] defined above, build spline basis
(n) curves do not have to take the same mathematical form. Depending
functions B[ai ,ai+1 ],δ (t ) according to (17). on the design convenience, they may be expressed in different
4. Representing the designed curve parametrically as ways. For instance, some parts of the designed curve may be
6 represented using sine and cosine functions, and some other parts
(n)
−
P(t ) = Pi B[ai ,ai+1 ],δ (t ). (21) are designed as polynomial or piecewise polynomial curves. When
i=1
these curves are combined into one piece, their major original
shape features can be maintained by choosing appropriate values
Some curves shown in Fig. 9 were designed based on the above for blending range control parameter δ and lengths of intervals on
process. Curves shown in Fig. 9(a) were designed using different which the associated PSP-spline basis functions are built.
sets of weights but the same δ value. As can be observed from By using the shape-preserving feature of the PSP-spline basis
the figure, this way of designing curves using PSP-splines has the functions, various design ideas used in curve design practice can be
same advantage as NURBS. However, the introduction of parameter implemented easily in a much more intuitive way as special cases
δ into the design scheme provides an additional flexibility and of this generalized curve design technique. For instance, a design
dimension in shape design. As have been shown in Fig. 9(b), with scheme similar to the Hermite curve can be directly expressed in
the use of different δ values in the basis functions, various curves a form given in (22). Assume that the path of a moving particle
can be generated. is described by the sequence of data Pi , vi , i = 0, 1, 2, . . . , n,
Some more example curves designed using nonequal weights representing the positions and velocities at different moments of
are demonstrated in Figs. 10 and 11. the particle. Then the path can be represented either using the
Since PSP-spline basis functions have exactly the same proper- idea of data interpolation or approximation in slightly different
ties as B-spline basis functions, curves designed using PSP-spline ways. For instance, when a curve is required to interpolate both
basis functions are of similar properties to B-spline curves, such as the specified positions and velocities, the path can be expressed in
convex-hull property, linear precision. general in the following form using the quadratic PSP-spline basis
(2)
function B[ai ,ai+1 ],δ (t ):
6.2. Curve blending
n
(Pi + (t − ti )vi )B([a2i),ai+1 ],δ (t )
−
A required curve can also be described as a blend of a sequence P(t ) = (23)
of simple premade geometric primitives, such as line segments, i=0
Fig. 10. Curves designed using cubic PSP-spline basis functions built from nonequal spaced intervals.
a 1
P0 P2
δ=1.0
P5 P7
P1 P3 P4 P6
0.8
0.6
0.4
0.2
0
-1 0 1 2 3 4 5 6 7 8 9
0.3
0.2 P3 P2
0.1
P7 P6
0
-0.1
P4 P5
-0.2
-0.3 P0
P1
-0.4
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
δ=1.8
b 1
P0 P2 P5
P7
0.8
P1 P3 P4 P6
0.6
0.4
0.2
0
-2 0 2 4 6 8 10
0.3
0.2 P3 P2
0.1
P7 P6
0
-0.1
P4 P5
-0.2
-0.3 P0
P1
-0.4
0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Fig. 11. Freeform curves designed using cubic PSP-spline basis functions built with nonequal spaced intervals. The upper diagram shows to which control point a spline
basis function is associated with. (a) P2 and P5 are interpolated, in addition to the interpolation of P0 and P7 . (b) Except for P0 and P7 , no control points are interpolated but
the curve is drawn closer to P2 and P5 owing to the longer intervals used to build the spline basis functions associated with the two control points.
The curve expressed in the form shown in (23) can also be considered as the trajectory of an object in motion with a uniform
used to design curves containing multiple flat parts by partially rectilinear translation. The difference between position based
interpolating each line segment Pi + (t − ti )vi , which can be interpolation and line segment based interpolation is in the shape
402 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
450
0.4
400
0.2
350
0
-0.2 300
-0.4
250
-0.6
200
-0.8
-1
150
-1.2
100
-1.4 -100 0 100 200 300 400 500
-1.6
Fig. 14. A piecewise cubic curve interpolating the given data points designed
0.5
following the idea expressed in (24) using equal spaced intervals.
-0.4
1 -0.2
1.5 0
0.2
2 required curve can be designed in the following way:
2.5
n
((1 − Ti,ϵ )Pi + Ti,ϵ Pi+1 )B([a2i),ai+1 ],δ (t ),
−
Fig. 12. A smooth curve designed by blending a helix and a circle. P(t ) = (25)
i=0
-0.02
t −ti +ϵ
where Ti,ϵ = ti+1 −ti +2ϵ
.
-0.03
Curves shown in Fig. 15 is designed in this way using different
-0.04 δ and ϵ values.
-0.05
As it is commonly known that fitting a B-spline curve to a data
o set in general involves solving a linear equation system, which
o
-0.06
can be quite expensive when a very large set of data points is to
-0.07 be interpolated. However, with the above proposed approach, the
curve fitting problem turns into a task of blending a set of locally
-0.08
specified curves, which is not only simple to implement and very
-0.09 o
o
efficient to compute, but also much more flexible.
-0.1
Similar to the second order Hermite curve design, a curve can be
designed to interpolate the positions, velocities and accelerations
-0.11
using locally defined quadratic curves. Suppose Pi , vi , ai are the
-0.12 positions, velocities and accelerations of a particle in motion
0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24
corresponding to the moments ti , i = 0, 1, 2, . . . , n. Then the
track of the particle can be approximated by a curve represented
Fig. 13. Curve designed by interpolating the position and velocity data, similar to
the Hermite curve design scheme. in the following form using cubic PSP-spline basis function
(3)
B[ai ,ai+1 ],δ (t ):
(2)
of the spline basis function B[ai ,ai+1 ],δ (t ) associated with Pi + (t − n
1
ti )vi . For line segment based interpolation, flat-topped spline basis (t − ti ) ai B([a3i),ai+1 ],δ (t ).
−
P(t ) = Pi + (t − ti )vi + 2
(26)
function should be used, where the function takes value one within i=0
2
a subinterval of [ai , ai+1 ]. (3)
Obviously, when B[ai ,ai+1 ],δ (ti ) = 1, we will have
This idea immediately leads to a simple interpolation scheme.
Let Pi , i = 0, 1, 2, . . . , n, be a sequence of data points to be P(ti ) = Pi , Ṗ(ti ) = vi , P̈(ti ) = ai .
interpolated. For each pair of control points Pi and Pi+1 , let Ci (t ) (3) (3)
This is because at t = ti , Ḃ[ak ,ak+1 ],δ (ti ) = B̈[ak ,ak+1 ],δ (ti ) = 0
be a local curve interpolating the two points at t = ti and t = ti+1 ,
(3)
respectively. Then a curve interpolating all the data points can be when B[ai ,ai+1 ],δ (ti ) = 1.
represented as a blending of these locally designed curves. One It is commonly known that certain quadratic curves like circles
simple way to do this is to use a straight line defined by each pair and ellipses cannot be expressed as polynomial curves precisely.
of control points. For any sequence of knots ti , i = 0, 1, 2, . . . , n, However, they can be approximated quite accurately using PSP-
when δ ≤ ti+1 − ti , the following parametric curve will interpolate spline curves. Fig. 16 shows visually how an ellipse can be
all the control points: approximated using four control points based PSP-spline curves.
Only a close-up of the figure can reveal the difference between the
n
two curves.
((1 − Ti )Pi + Ti Pi+1 )B([t2i),ti+1 ],δ (t ),
−
P(t ) = (24)
i =0 7. Freeform surface design using PSP-spline curves
t − ti
where Ti = .
ti+1 −ti As with conventional spline surfaces, various freeform surfaces
Curve shown in Fig. 14 is designed in this way. can be generated using PSP-spline curves, such as ruled surfaces
Similar idea can also be applied to design a curve which partially and rotated surfaces. Some example surfaces of revolution are
interpolate the control polygon edges. Let ϵ be a positive number shown in Fig. 17. The profile curves used to generate these surfaces
for specifying to what extent one would like to maintain the edge are PSP-spline curves constructed based on the same set of control
of a given control polygon as parts of the designed curve. Then the points.
Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409 403
450 450
400 400
350 350
300 300
250 250
200 200
150 150
-100 0 100 200 300 400 500 -100 0 100 200 300 400 500
Fig. 15. PSP-spline curves designed based on partial polygon edge interpolation using different δ and ϵ values. Left: δ = 1 and ϵ = 0.6; Right: δ = 0.3 and ϵ = 0.2.
-0.997
1
-0.9975
0.8
0.6 -0.998
0.4 -0.9985
0.2 -0.999
0
-0.9995
-0.2
-1
-0.4
-1.0005
-0.6
-1.001
-0.8
-1 -1.0015
-1.002
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -0.1 -0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1
Fig. 16. The cubic PSP-spline curve designed using four control points can well approximate an ellipse with an appropriately chosen δ value. The dotted line refers to the
plot of the ellipse 14 x2 + y2 = 1 and the solid line refers to the cubic PSP-spline curve designed using δ = 0.582 with spline basis functions constructed based on the knot
vector [0, 0.25, 0.5, 0.75, 1.0]. Left: the two curves are plotted with a normal view. Right: a close-up view of the two curves to reveal the difference between the two curves.
Fig. 17. Surfaces of revolution from PSP-spline curves defined using the same set of control points.
404 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
2 2
1.5 1.5
1 1
0.5 0.5
0 0
-0.5 -0.5
-1 -1
-1.5 -1.5
-2 -2
4 4
3 6 3 6
5 5
2 4 2 4
3 3
1 2 1 2
1 1
0 0 0 0
2 2
1.5 1.5
1 1
0.5 0.5
0 0
-0.5 -0.5
-1 -1
-1.5 -1.5
-2 -2
4 4
3 6 3 5
5 4
2 4 2
3 3
1 2 1 2
1 1
0 0 0 0
Fig. 18. Tensor-product PSP-spline surfaces designed using the same set of 6 × 5 control points with δ1 = δ2 = 0.5, 0.8, 1.0, 1.2, respectively.
Similar to the conventional tensor-product B-spline surface, a case, point is the only type of geometrical object that separates a
surface patch can also be generated as the tensor product of the real line into two parts, and interval is the only type of connected
PSP-spline basis functions in the following way: set that serves as the support of a univariate spline basis function.
n However, in higher dimension, the situation is much more compli-
(m) (m) cated. For example, in the case of 2D, there are infinitely many dif-
−
S (u, v) = Pi,j B[ai ,ai+1 ],δ1 (u)B[bj ,bj+1 ],δ2 (v). (27)
i,j=1
ferent types of geometric objects that can separate a plane into two
simply connected areas, and there is a variety of different kinds of
The features of tensor-product PSP-spline surfaces are illus- simply connected sets. Consequently, in practice, how to create the
trated in Fig. 18. Unlike conventional tensor-product B-spline sur- required bivariate spline basis functions depends on how the space
faces, a set of PSP-spline surface patches can be generated cor- has been partitioned. If the space is partitioned with regular grid,
responding to different values of shape-preserving parameters δ1 a set of multivariate splines can be built easily as the tensor prod-
and δ2 in (27) and different sizes of the supports of PSP-spline basis uct of univariate B-splines. However, when the space is partitioned
functions. using irregular grid, we still do not have a theoretically elegant
When the PSP-spline basis functions are designed to have and practically usable technique to construct the set of spline ba-
different sizes in their supports, a rich set of geometric shapes sis functions from the given partitioning polygons. Though various
can be generated using a much smaller set of control points by techniques have been proposed to build bivariate spline basis func-
intuitively tuning the shape-preserving parameter δ1 and δ2 used tions, such as box and simplex splines, they are in general very ex-
in (27). Fig. 19 shows some surfaces built in this way. pensive to evaluate, especially when evaluating a bivariate spline
As has been demonstrated in Fig. 19, the key advantage of PSP- basis functions with high degree of smoothness [12]. Some less
spline surfaces is its versatility and efficiency in designing freeform expensive splines have been proposed. For instance, in [13], edge
geometric shapes. based piecewise polynomial functions were introduced to build
spline basis functions from an arbitrarily specified set of polygons.
8. 2D PSP-spline basis functions and their application in However, these functions are not in general additive. In addition,
freeform surface modeling the corresponding shape design method does not in general pos-
sess some good geometric properties observed in traditional spline
Tensor-product based freeform surfaces are designed using based shape design techniques. In this paper, we demonstrate how
spline basis functions built from rectangular grid, which offers a to use the bivariate spline basis functions introduced in [1] for the
simple way to build freeform surfaces when the specified control purpose of parametric surface design.
points are relatively regularly distributed. However, many data
sets are quite irregular, especially those data sampled from the
8.1. Bivariate PSP-spline basis functions
surfaces of real world objects. In many cases, spline basis functions
corresponding to arbitrarily specified polygons may need to be
Let ⊂ R2 be a square of size 2δ × 2δ centered at the
constructed.
coordinate origin with δ > 0. For an arbitrarily given polygon
Compared with the construction of 1D spline basis functions,
∆ ⊂ R2 , we define a sequence of functions in the following way
constructing 2D smooth piecewise polynomial spline basis func-
1, (u, v) ∈ ∆;
tions that are having similar geometric properties to the univari- (0)
B∆,δ (u, v) = χ∆ (u, v) = ,
ate spline basis functions is an extremely tough task. In the 1D 0, (u, v) ̸∈ ∆
Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409 405
Fig. 19. Tensor-product PSP-spline surfaces designed using the same set of 4 × 4 control points, where the PSP-spline basis functions are of different support lengths.
∫∫
(n) 1 (n−1) Now for an arbitrarily given 2D polygon, a 2D field function can
B∆,δ (u, v) = B∆,δ (s, t )χ (s − u, t − v)dsdt , (n)
4δ 2 R2 be directly defined using Ωα,β,δ (u, v). First, for each vertex of the
(n > 0), (28) polygon V0 , the following function can be defined for a nonnegative
numbers α and a number β :
where
0, α = 0;
1, (u, v) ∈ [−δ, δ] × [−δ, δ];
χ (u, v) =
0, otherwise.
1 1
( u0 − u) H n (v0 − v) ,
Hn
δ δ
The parameter δ in the integral plays a role similar to the one
α > 0, β = 0;
(n)
used in (11) and can be used to specify to what extent one wants Vα,β,δ (u, v; V0 ) = (n) (31)
(0) Ωα,β,δ (u − u0 , v − v0 ),
the contour curve B∆,δ (u, v) = 0.5 to approximate the control
α > 0, β > 0;
polygon.
(n)
Ω (−(u − u0 ), v − v0 ),
As have been shown in [1], the integration defined above can be α,|β|,δ
α > 0, β < 0.
expressed in an explicit form.
Let v = (α, β), α > 0, β > 0, be a vector representing the
Now consider two vertices V0 (u0 , v0 ) and V1 (u1 , v1 ) associated
orientation of an edge of a polygon. Then for any integer n >
with an edge of the given polygon. A bivariate function can be
0 a bivariate function expressed in piecewise polynomial can be (n) (n)
defined as follows: defined using Vα,β,δ (u, v; V0 ) and Vα,β,δ (u, v; V1 ) introduced in
(31):
0,
(n) (n)
β Vα,β,δ (u, v; V1 ) − Vα,β,δ (u, v; V0 )
v ≥ min u, 0 ;
v1 > v0 or (v1 = v0 , u1 ≥ u0 );
α
(n)
Lδ (u, v; V0 , V1 ) =
(32)
(n) (n)
α,β,δ (u, v; V0 ) − Vα,β,δ (u, v; V1 )
1 V
(β u − αv)2n ,
v1 < v0 or (v1 = v0 , u1 < u0 ),
(2n)!α β
n n
β
(n)
Aα,β (u, v) = v < min u, 0 , u ≤ 0; (29) where
α
1, u1 = u0 ;
0,
u1 = u0 ; v1 − v0
(−1)n+k α k
n
α= , β=
1, , otherwise.
−
un−k v n+k ,
otherwise
( )!( )!β
n − k n + k k u1 − u0
k=1
v < min β u, 0 , u > 0.
Now let V0 (u0 , v0 ), V1 (u1 , v1 ), . . . , Vm (um , vm ) be the m + 1
α vertices of the given polygon ∆ specified in counter-clockwise
order. Then it can be shown that the bivariate function defined in
It can be shown directly that the piecewise polynomial function
(n) (28) can be written explicitly in the following form:
Aα,β (u, v) is nonnegative and C n−1 -continuous.
(n) m
With function Aα,β (u, v), the following function can be defined (n) (n)
−
B∆,δ (x) = sign(xk − xk+1 )Lδ (u, v; Vk , Vk+1 ), (33)
for a given number δ > 0:
k =0
n −
n
1 n (n)
(n) i +j n where Vm+1 = V0 and Lδ (u, v; Vi , Vj ) is defined according to (32).
−
Ωα,β,δ (u, v) = (−1) Fi,j (u, v), (30)
(4δ 2 )n i=0 j=0
i j With the properties of integration it can be shown that
(n)
B∆,δ (u, v) has the following properties:
where
(n)
(n)
Fi,j (u, v) = Aα,β (u + (n − 2i)δ, v − (n − 2j)δ). 1. 0 ≤ B∆,δ (u, v) ≤ 1.
(n)
(n)
2. B∆,δ (u, v) has a C n−1 -continuity.
As has been pointed out in [1], Ωα,β,δ (u, v) is piecewise polynomial (n)
n−1
3. B∆,δ (u, v) is a piecewise polynomial.
and C -continuous. In addition, it is also nonnegative and only (n)
takes value from the interval [0, 1]. 4. B∆,δ (u, v) has a finite support if polygon ∆ is finite.
406 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
1.5
1
1
0.5 0.5
0 0
2
1.5
-0.5 1 2
0.5
-1 0 1
-0.5 0
-1.5 -1
-1
-1.5
-2 -2 -2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
1.5 1
1
0.5
0.5
0
0 1.5
1
-0.5 1.5
0.5
1
-1 0 0.5
-0.5 0
-1.5 -0.5
-1
-1
-2 -1.5 -1.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Fig. 20. Left column. A set of 2D polygons. The polygons used to construct a spline basis function can be convex (upper row) but can also be non-convex (some polygons in
lower row). Right column. A set of 2D spline basis functions built upon the polygons shown on the left hand side.
0.5
0.4
0.3
2
0.2
0.1 1
1
0
1.5
1.5
0.5 1 1 1
0.5 0.5 0.5
0
0 0
0
-0.5 -0.5
-0.5 -0.5
-1 -1
-1 -1 -1.5 -1.5
6 6 6 6
4 4 4 4
2 2 2 2
0 0 0 0
-2 -2 -2 -2
-4 -4 -4 -4
-6 -6 -6 -6
2 2 2 2
2 2 2 2
0 0 0 0
0 0 0 0
-2 -2 -2 -2 -2 -2 -2 -2
Fig. 21. Surface designed based on the idea shown in (34). Row 1: Simple geometric shapes designed by blending a set of parametric patches. Row 2: Blending range can be
controlled using different values of δ in (34). The surfaces, from left to right, are generated using δ = 0.2, 0.5, 0.8, 1.5, respectively.
(n)
5. B∆,δ (u, v) is additive. That is, if two polygons ∆1 and ∆2 do not then
intersect or they only intersect at their edges, then (n)
−
B∆k ,δ (u, v) = 1.
(n) (n) (n)
B∆1 ∪∆2 ,δ (u, v) = B∆1 ,δ (u, v) + B∆2 ,δ (u, v). k
6. Partition of unity. If Fig. 20 shows two sets of 2D PSP-spline basis functions built
according to (33) from two given sets of polygons. The polygon
∆k = R 2 , area ∆i ∆j = 0, used to construct a 2D spline basis function can either be convex
k i̸=j or non-convex.
Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409 407
1.5
a 0.8
1
0.5
0.6 0
0.4 -0.5
0.2 -1
0 -0.5
1
0.5 1 0 1
0 0.5 0.5
0 0.5 0
-0.5 -0.5
1 -1 -0.5
-1 -1
-1
-2
-3
1
-2 0
-1 -1
0 1
1
b 0.8 0.5
0.6 0
0.4
-0.5
0.2 -1
0
1 -0.5
0.5 1 1
0 0.5 0 0.5
-0.5 0 0.5 0
-0.5 -0.5
-1 -1 1 -1
0.5 1
0 0.5
0
-0.5
-0.5
-1
-1
-1.5
-1.5
-2
-2
-2.5 1
-2.5 -1
-3 0
-1 -1 1.5 1 0
0.5 0
0 -2 -0.5
1 -1 -1.5 1
Fig. 23. Surfaces obtained by deforming a sphere using localized transformations. (a) Surfaces due to local scaling transformations constructed using the PSP-spline basis
functions shown in the first row. (b) Surfaces due to local rotational transformations constructed using PSP-spline basis functions shown in the first row.
408 Q. Li, J. Tian / Computer-Aided Design 43 (2011) 394–409
9. Summary
[9] Neamtu M. What is the natural generalization of univariate splines to higher [12] Fong P, Seidel H-P. An implementation of multivariate b-spline surfaces
dimensions? In: Lyche T, Schumaker LL, editors. Mathematical methods for over arbitrary triangulations. In: Proceedings of the conference on graphics
curves and surfaces. Nashville: Vanderbilt University Press; 2001. p. 355–92. interface’92. San Francisco (CA, USA): Morgan Kaufmann Publishers Inc.; 1992.
[10] Li Q, Griffiths JG, Ward J. Constructive implicit fitting. Computer Aided p. 1–10.
Geometric Design 2006;23(1):17–44. [13] Li Q. Implicit spline curves and surfaces. In: Hu H, Zhu Z, Lang Z, editors.
[11] Li Q. Smooth piecewise polynomial blending operations for implicit shapes. Proceedings of CACSCUK’05. Colchester (England): Pacilantic International
Computer Graphics Forum 2007;26(2):157–71. Ltd.; 2005. p. 201–6