4.4 A Smooth Subdivision Scheme with Circular Precision 115
■
For +γ
2
(i.e., the exponential case), let σ
k
= Cosh[2
−k
γ ]. Note that in this
case
σ
k
> 1 for all k.
■
For
−γ
2
(i.e., the trigonometric case),
σ
k
= Cos[2
−k
γ ]
. The restriction 0 ≤γ ≤π
causes σ
k
to lie in the range −1 ≤ σ
k
< 1.
In all three cases, the reader may verify by inspection that equation 4.25 reproduces
the appropriate subdivision mask. At first glance, this separation of the values of
σ
k
into three cases seems to provide little help. However, the following theorem
makes these three cases unnecessary once the initial tension
σ
0
has been chosen.
THEOREM
4.4
If
σ
0
≥−1
, for all three of the previously stated cases the tensions σ
k−1
and
σ
k
satisfy the recurrence
σ
k
=
(
1 + σ
k−1
2
.
(4.26)
Proof In the polynomial case, equation 4.26 follows from the fact that 1 ==
)
1+1
2
. In the exponential case, equation 4.26 follows from the identity
Cosh[x]
2
==
1+Cosh[2x]
2
. In the trigonometric case, equation 4.26 follows from
the identity
Cos[x]
2
==
1+Cos[2x]
2
and the fact that 0 <γ ≤ π .
Given the tension σ
k−1
, the subdivision mask s
k−1
is derived by first computing
σ
k
using equation 4.26 and by then substituting σ
k
into equation 4.25. (Observe
that the mask
s
k−1
uses the tension parameter σ
k
, not σ
k−1
.) This nonstationary
subdivision scheme combines the three previous schemes in a very elegant manner.
Instead of choosing
γ , the user simply chooses an initial “tension” σ
0
. In all three
cases, the resulting limit curve is a
C
2
spline.
If the initial tension is
σ
0
= 1, then σ
k
== 1 for all k and the subdivision scheme
is exactly the cubic B-spline subdivision algorithm of Lane and Riesenfeld. If
σ
0
> 1,
the scheme converges to a spline in tension. If
−1 ≤ σ
0
< 1, the scheme converges
to a “mixed” trigonometric spline. Figure 4.3 illustrates the effect of varying initial
tensions
σ
0
on the resulting splines. In particular, the figure shows a diamond-
shaped polygon and the corresponding splines for
σ
0
={−1, 0, 1, 10, 100}. Varying
σ
0
controls the distribution of the curvature of the spline. Using large values for σ
0
causes most of the curvature to be concentrated near the vertices of the control
polygon (i.e., the spline “clings” to the control polygon). Using small values tends
to distribute more of the curvature of the spline near edges of the control polygon.
Finally, if the initial polygon
p
0
is chosen to be a regular n-gon, choosing the initial
tension
σ
0
to be Cos[
2π
n
] causes the subdivision scheme to converge to a circle.