Interpolation of a spline developable surface between a curve and two rulings

# Interpolation of a spline developable surface between a curve and two rulings

A. Cantón and L. Fernández-Jambrina
###### Abstract

In this paper we address the problem of interpolating a spline developable patch bounded by a given spline curve and the first and the last rulings of the developable surface. In order to complete the boundary of the patch a second spline curve is to be given. Up to now this interpolation problem could be solved, but without the possibility of choosing both endpoints for the rulings. We circumvent such difficulty here by resorting to degree elevation of the developable surface. This is useful not only to solve this problem, but also other problems dealing with triangular developable patches.

 Journal of Zhejiang University-SCIENCE C (Computers & Electronics) ISSN 1869-1951 (Print); ISSN 1869-196X (Online) www.zju.edu.cn/jzus; www.springerlink.com E-mail: jzus@zju.edu.cn

Interpolation of a spline developable surface between a curve and two rulings

 †E-mail:  alicia.canton@upm.es; leonardo.fernandez@upm.es

thanks:  Corresponding authorthanks: ©Zhejiang University and Springer-Verlag Berlin Heidelberg 2013

Abstract:

 Key words: Developable surfaces, Spline surfaces, blossoms.

doi:10.1631/jzus.C1000000         Document code:  A         CLC number:

## 1 Introduction

Developable surfaces have been used extensively in industry for modelling sheets of steel. These surfaces are plane patches that have been curved by isometric transformations, preserving lengths of curves, angles and areas. They mimic the properties of thin steel plates that are transformed by cutting, rolling or folding, but not by stretching or application of heat, which would raise manufacturing costs.

Their inclusion in the NURBS formalism, however, has not been easy. The condition of developability is a non-linear differential equation which translates into non-linear equations for the vertices of the control net of the surface.

To our knowledge the first reference to NURBS developable surfaces arises in technical reports at General Motors (Mancewicz and Frey (1992); Frey and Bindschadler (1993)). One approach has been solving the developability condition for low degrees (Lang and Röschel (1992); Chu and Séquin (2002); Chu et al. (2008)).

Another approach to developable surfaces consists in resorting to projective dual geometry. In this geometry “points” are planes and “planes” are points and this is useful to solve the developability condition (Bodduluri and Ravani (1993); Pottmann and Farin (1995); Hu et al. (2012)).

One can also construct surfaces which are approximately developable instead (Chalfant and Maekawa (1998); Pottmann and Wallner (1999); Leopoldseder (2001); Peternell (2004); Liu et al. (2011); Zeng et al. (2012)). A nice review may be found in Pottmann and Wallner (2001). Applications to ship hull design may be found in Kilgore (1967); Pérez and Suárez (2007); Pérez-Arribas et al. (2006).

A large family of Bézier developable surfaces was obtained in Aumann (2003, 2004) defining affine transformations between cells of the control net. This result has been extended to spline (Fernández-Jambrina (2007)) and Bézier triangular (Cantón and Fernández-Jambrina (2012)) developable patches. A characterisation of Bézier ruled surfaces is found in Juhász and Róth (2008).

In this paper we make use of the latter constructions to find solutions to interpolation problems with developable surfaces. For instance, in Fernández-Jambrina (2007), we were able to draw a developable surface through a given boundary curve and two rulings, but we could not choose both endpoints for these rulings. We would like to solve such an issue and also apply the solution to new problems.

Following Fernández-Jambrina (2007), we first review in Section 2 the main features, definitions and the classification of developable surfaces, whereas in Section 3 we deal with the formalism of B-spline curves. In Section 4 we review the construction of spline developable surfaces grounded on linear relations between vertices of the B-spline net, that was given in Fernández-Jambrina (2007). In Section 5 we use that construction to provide solutions to an interpolation problem between a spline curve and two rulings as in Fernández-Jambrina (2007). Finally, in Section 6 we use degree elevation to provide our new solution to the problem of interpolating a developable patch between a spline curve and segments of the rulings at both ends. This problem could not be solved with just our previous results. This solution is extended to triangular patches in Section 7. A final section of conclusions is included at the end of the paper.

## 2 Developable surfaces

A ruled surface patch fills the space between two parametrised curves , ,

 b(u,v)=(1−v)c(u)+vd(u), u∈[a,b], (1)

for , by linking with segments, named rulings, the points on both curves with the same parameter .

In general, the tangent plane to the ruled surface on a ruling is different for each point on the segment. Developable surfaces are the subcase of ruled surfaces for which the tangent plane is constant along each ruling (Struik (1988); Postnikov (1979)).

Let us compute a normal vector at each point of a ruled surface with the derivatives of the parametrisation in Eq. 1,

 bu(u,v)=(1−v)c′(u)+vd′(u), bv(u,v)=d(u)−c(u),
 (bu×bv)(u,v)=((1−v)c′(u)+vd′(u))×(d(u)−c(u)),

which is linear in the parameter . If we calculate it on both ends of the rulings,

 (bu×bv)(u,0)=c′(u)×(d(u)−c(u)),
 (bu×bv)(u,1)=d′(u)×(d(u)−c(u)),

we learn that the three vectors , , are to be coplanary in order to have a constant tangent plane along each ruling of the surface.

Proposition: A ruled surface parametrised as in Eq. 1 is developable if and only if the vector , linking the points , , and the velocities , of the curves at these points are coplanary for every value of .

## 3 B-spline curves

In this section we review the formalism of B-spline curves and their main properties in order to fix the notation, which follows closely the one in Farin (2002). We may define a B-spline curve of degree and pieces on an interval , so that the -th piece of the curve is defined on an interval . For this we require an ordered list of values of the parameter , which are named knots, . The actual knots defining the intervals for each piece are the inner knots whereas the knots at the beginning of the list (usually taken to be equal to ) and at the end (usually taken to be equal to ) are auxiliary.

Points on B-spline curves can be computed using the De Boor’s algorithm, , consisting on linear interpolations between consecutive vertices. For a curve of just one piece:

 cr)i(u) := ui+n−uui+n−ui+r−1cr−1)i(u) (2) + u−ui+r−1ui+n−ui+r−1cr−1)i+1(u),

for , .

A useful construction, named polarisation or blossom of the parametrisation of the curve, consists of interpolating in each step with a different value of the parameter , ,

 cr)i[v1,…,vr] := ui+n−vrui+n−ui+r−1cr−1)i[v1,…,vr−1] (3) + vr−ui+r−1ui+n−ui+r−1cr−1)i+1[v1,…,vr−1].

With this notation, , we have that . Vertices are recovered from the polarisation as .

These expressions are valid for B-spline curves with an arbitrary number of pieces, replacing the interval of the first piece by the interval of the piece under consideration.

We may summarise some properties of the De Boor algorithm and the polarisation which are relevant for our purposes:

1. The velocity of the curve is

 c′(u) = nun−un−1(cn−1)1(u)−cn−1)0(u)) (4) = n(c[u,un]−c[u,un−1])un−un−1.
2. The polarisation of the spline curve , is multiaffine and symmetric. That is, if ,

 c[λv1+μ~v1,…,vn]=λc[v1,…,vn]+μc[~v1,…,vn].

Finally, we review two operations with B-spline curves which we shall need later on:

Insertion of knots: Given a B-spline curve of degree with vertices and knots , we can split into two the piece corresponding to the interval by inserting a new knot , . The new list of knots is then obviously ,

 ~ui=ui, i=0,…,I, ~uI+1=~u, ~ui=ui−1,

for , and, since the curve has not changed, the blossom provides the new sequence of vertices ,

 ~ci=c[~ui,…,~ui+n−1],i=0,…,L+1.

Degree elevation: Formally we may express a B-spline curve of degree as a curve of degree . The blossom of the degree-elevated curve is related to the original one in a simple form (Farin (2002)),

 c1[v1,…,vn+1]=n+1∑i=1c[v1,…,vi−1,vi+1,…,vn+1]n+1 (5)

and in the list of knots the multiplicity of inner knots, from to , is increased by one, without modifying the auxiliary knots.

## 4 Spline developable surfaces

The developability condition in Proposition 1 may be readily now adapted to spline curves (Fernández-Jambrina (2007)).

To start, let us consider two B-spline curves of degree and one segment over a common list of knots , defined on the interval . Their respective B-spline polygons are , .

We may draw a simple conclusion using the De Boor algorithm. Using Eq. 4 and the last iteration of Eq. 2, it is clear that the vectors , , are coplanary if and only if the four points , , , are coplanary (see Figure 1).

The developability condition is then equivalent to the possibility of writing one of the points as a barycentric combination of the other ones. For instance,

 dn−1)1(u) = μ0(u)dn−1)0(u)+λ0(u)cn−1)0(u) + λ1(u)cn−1)1(u),

with coefficients , , .

We may rewrite this combination in another form, separating the terms related to each curve, also in a barycentric fashion,

 (1−Λ(u))cn−1)0(u)+Λ(u)cn−1)1(u) =(1−M(u))dn−1)0(u)+M(u)dn−1)1(u), (6)
 Λ(u)=λ1(u)λ0(u)+λ1(u),M(u)=1λ0(u)+λ1(u),

which just excludes the case of parallel vectors , , which corresponds to a cone. In this sense we use the word generic, since the following results will be valid for all developable surfaces, but for this type of cone.

Using blossoms and taking into account that these are multiaffine Eq. (2),

 (1−Λ(u))cn−1)0(u)+Λ(u)cn−1)1(u) =(1−Λ(u))c[u,un−1]+Λ(u)c[u,un] =c[u,(1−Λ(u))un−1+Λ(u)un],

the coplanarity condition (Eq. 4) may be written in a more compact expression,

 c[u,Λ∗(u)]=d[u,M∗(u)], (7)
 Λ∗(u)=(1−Λ(u))un−1+Λ(u)un,
 M∗(u)=(1−M(u))un−1+M(u)un.

This expression is valid for B-spline curves with arbitrary number of pieces, replacing the interval of the first piece by the interval of the piece under consideration.

The higher the degree of , , the larger the number of conditions imposed by Eq. 7. Hence, we restrict now to the case with constant , , which produces the families of developable surfaces in Aumann (2003); Fernández-Jambrina (2007). In this case expressions on both sides of Eq. 7 may be viewed as parametrisations of curves of degree and therefore this condition is equivalent to the same one for their blossoms, since a blossom is uniquely determined by its parametrisation:

###### Theorem 1

Two B-spline curves of degree and pieces with the same list of knots define a developable surface on the interval if their blossoms are related by

 c[v1,…,vn−1,Λ∗]=d[v1,…,vn−1,M∗],

for some values , .

We may obtain relations between the B-spline polygons of both curves by applying the previous expression to lists of correlative knots, , taking into account that blossoms are multiaffine,

 c[ui+1,…,ui+n−1,Λ∗] =c[ui+1,…,ui+n−1,ui+n−Λ∗ui+n−uiui+ Λ∗−uiui+n−uiui+n] =ui+n−Λ∗ui+n−uic[ui,…,ui+n−1] +Λ∗−uiui+n−uic[ui+1,…,ui+n] =ui+n−Λ∗ui+n−uici+Λ∗−uiui+n−uici+1,

since .

Corollary 1: Two B-spline curves of degree with the same list of knots and B-spline polygons , define a developable surface if the cells of the B-spline net of the surface are plane and their vertices are related by

 (ui+n−Λ∗)ci+(Λ∗−ui)ci+1 =(ui+n−M∗)di+(M∗−ui)di+1, (8)

for some values , and .

This family of spline developable surfaces has the advantage of being defined by linear relations between vertices, in spite of the non-linearity of the condition of null gaussian curvature.

The data for this construction are the B-spline polygon , the list of knots and, for instance, the first plane cell of the net, given by either , or and the parameters , .

Since this construction is based on blossoms of curves, it is compatible with algorithms for B-spline curves, grounded on blossoms, such as, for instance, the knot insertion algorithm for subdivision of B-spline curves. That is, if we split into two pieces the interval by inclusion of a new knot , so that the new list is and we compute the new B-spline polygons and , these new vertices satisfy Eq. 8.

However, this construction is not compatible with degree elevation of B-spline curves. The degree-elevated B-spline developable surface through two B-spline curves does not coincide with the B-spline developable surface through the corresponding degree-elevated curves. See, for instance, in Figure 3 a developable surface and the control polygons of the degree-elevated boundary curves (denoted by tildes): the central cell of the degree-elevated surface is not even planar.

We show it explictly with a simple example:

###### Example 1

Find a developable surface patch of degree two and just one piece, bounded by two curves, and , with polygons,

 c0=(0,0,0), c1=(3,3,0), c2=(4,3,0);
 d0=(0,0,2), d1=(2,2,3),

and knots .

From Eq. 8 applied to the first cell of the B-spline net, ,

 (u2−Λ∗)c0+(Λ∗−u0)c1=(u2−M∗)d0+(M∗−u0)d1,

with , , , we get

 (1−Λ∗)(0,0,0)+Λ∗(3,3,0) = (1−M∗)(0,0,2) + M∗(2,2,3),

and hence and .

We lack the vertex , but for the second cell of the net,

 (u3−Λ∗)c1+(Λ∗−u1)c2=(u3−M∗)d1+(M∗−u1)d2,
 73(3,3,0)−43(4,3,0)=3(2,2,3)−2d2,

we conclude .

If we formally elevate the degree of both curves to three, the list of knots extends to and the new polygons obtained with Eq. 5,

 ~c0 = ~c[0,0,0]=c[0,0]=c0=(0,0,0) ~c1 = ~c[0,0,1]=c[0,0]+2c[0,1]3=c0+2c13 = (2,2,0) ~c2 = ~c[0,1,1]=2c[0,1]+c[1,1]3=2c1+c23 = (10/3,3,0) ~c3 = ~c[1,1,1]=c[1,1]=c2=(4,3,0)
 ~d0 = ~d[0,0,0]=d[0,0]=d0=(0,0,2) ~d1 = ~d[0,0,1]=d[0,0]+2d[0,1]3=d0+2d13 = (4/3,4/3,8/3) ~d2 = ~d[0,1,1]=2d[0,1]+d[1,1]3=2d1+d23 = (37/18,11/6,7/2) ~d3 = ~d[1,1,1]=d[1,1]=d2=(13/6,3/2,9/2)

correspond to a developable surface with non constant , and it is easy to check that the four points that form the second cell, , , , do not lie on a plane.

This feature, however, will be shown to be useful for solving interpolation problems, as it will be apparent in the following sections.

## 5 Interpolation of B-spline developable surfaces

Let us consider the following interpolation problem:

Problem 1: Given a spline curve of degree , pieces, B-spline polygon and list of knots , , , , and two straight lines and through the endpoints of with respective director vectors , , find a developable surface such that and and are the first and last rulings of the surface, that is, , .

The special case of Bézier curves of degree was solved by Aumann (2003), making use of his family of developable surfaces. His solution is extended to spline curves in Fernández-Jambrina (2007), solving the recursion in Eq. 8 for the B-spline net. We review here this construction in order to extend it to solve new problems in next sections.

We focus on the general case of crossing rulings and , since the particular cases of parallel or intersecting rulings may be solved in a simpler fashion resorting to cylinders and cones respectively.

As in Fernández-Jambrina (2007), the last ruling of the developable surface can be written in terms of the B-spline net of the curve , the list of knots and the coefficients , ,

 dL−cL = L−1∏i=0M∗−ui+nM∗−ui(d0−c0) + Λ∗−M∗M∗−uL−1(cL−a(M∗)), a(M∗) = M∗−uL−1M∗−u0L−1∏i=1M∗−ui+nM∗−uic0 (9) + L−1∑i=1ui+n−ui−1M∗−ui−1(L−2∏j=iM∗−un+j+1M∗−uj)ci.

From this expression we learn that the vectors along the first and last rulings, , , and the vector, have to be linearly dependent and this will happen for any solution of the algebraic equation

 det(a(M∗)−cL,v,w)=0. (10)

This allows us to write the linear combination in terms of a basis , ,

 a(M∗0)=cL+αv+βw+0n,

where the coefficients are readily obtained by Cramer’s rule,

 α=det(a(M∗0)−cL,w,n)det(v,w,n),
 β=det(v,a(M∗0)−cL,n)det(v,w,n).

Since is fixed by the coplanarity condition in Eq. 10, if we wish, we can modify the length of the rulings through either or just with the parameter , which remains free so far,

 σ = αΛ∗−M∗0M∗0−uL−1L−1∏i=0M∗0−uiM∗0−ui+n, τ = βM∗0−Λ∗M∗0−uL−1. (11)

Hence, we have solved the interpolation problem and we can use for fixing either or , but we cannot choose both ends of the rulings. An example of this construction is shown in Figure 4

The procedure for solving the problem is clear:

1. Write the algebraic equation 10 with the B-spline polygon for , vectors , and the list of knots and obtain a solution . For any value of the resulting developable surface will have as part of the boundary and the first and last rulings will be straight lines with respective directions , .

2. Fix by choosing either or in Eq. 5.

3. Use the recursivity relation in Eq. 8 for computing the vertices for .

4. The B-spline polygons , form the B-spline net for the developable patch complying with the prescription.

We illustrate this with an example, which will be useful as a first step for following sections:

###### Example 2

Consider a spline curve of degree three and three pieces with B-spline polygon

 c0=(0,0,0), c1=(2,3,0), c2=(4,3,0),
 c3=(5,0,0), c4=(7,2,1), c5=(9,−1,3),

and list of knots , not uniformly spaced. For the first ruling we choose direction and for the last ruling we choose . Find a developable surface patch bounded by and the rulings defined by , .

We calculate the determinant in Eq. 10,

 det(a(M∗)−cL,v,w)
 =2(M∗4+6.2M∗3−12.3M∗2+9.3M∗−2.1)M∗3(M∗−0.3)(M∗−0.7),

and we ensure developability by choosing the parameter as one of the real solutions of

 M∗4+6.2M∗3−12.3M∗2+9.3M∗−2.1=0,

which are .

We further choose along the first ruling, which amounts to choosing in Eq. 5, to obtain the respective values of the parameter . We perform the calculations for the first pair of parameters, , .

We may use now Corollary 1 to obtain the B-spline polygon of the other boundary curve of the developable patch through with prescribed rulings,

 di+1=(ui+n−Λ∗)ci+(Λ∗−ui)ci+1+(M∗−ui+n)diM∗−ui

for ,

 d1 = (u3−Λ∗)c0+(Λ∗−u0)c1+(M∗−u3)d0M∗−u0 = (1.56,2.34,2.08) d2 = (u4−Λ∗)c1+(Λ∗−u1)c2+(M∗−u4)d1M∗−u1 = (3.09,2.29,2.26) d3 = (u5−Λ∗)c2+(Λ∗−u2)c3+(M∗−u5)d2M∗−u2 = (3.75,−0.15,2.55) d4 = (u6−Λ∗)c3+(Λ∗−u3)c4+(M∗−u6)d3M∗−u3 = (5.22,1.42,3.55) d5 = (u7−Λ∗)c4+(Λ∗−u4)c5+(M∗−u7)d4M∗−u4 = (6.76,−1.00,5.24).

and check that in fact lies on the last ruling since

 d5−c5=(−2.24,0.00,2.24),

which is a vector proportional to . The resulting patch is shown in Figure 5.

Another way to look at this developable surface would be to split the spline curve into three cubic Bézier curves, , , , by knot insertion,

 C0=(0,0,0), C1=(2,3,0), C2=(2.86,3,0),
 C3=(3.48,2.61,0), C4=(4.3,2.1,0),
 C5=(4.7,0.9,0), C6=(5.52,1.04,0.33),
 C7=(6.14,1.14,0.57), C8=(7,2,1),
 C9=(9,−1,3).

If we also split by knot insertion the other boundary curve in three cubic pieces, , , , by knot insertion,

 D0=(0,0,2), D1=(1.56,2.34,2.08),
 D2=(2.21,2.32,2.15),
 D3=(2.67,1.99,2.24), D4=(3.29,1.56,2.35),
 D5=(3.55,0.58,2.46), D6=(4.15,0.68,2.84),
 D6=(4.15,0.68,2.84), D7=(4.59,0.75,3.12),
 D8=(5.22,1.42,3.55), D9=(6.76,−1.00,5.24),

it is easy to check that the three pieces of the composite ruled surface are in fact independent developable surfaces on their respective intervals , , , with the same parameters , . The boundary rulings of these Bézier developable surfaces have been marked in Figure 5.

## 6 Degree elevation of developable surfaces

We have seen how to interpolate a spline developable surface bounded by a spline curve and two rulings, but we cannot choose both endpoints for such rulings. This is a limitation of the procedure in Fernández-Jambrina (2007) described in the previous sections. A way to deal with this problem is to try to find a solution of higher degree.

As it is pointed out in Aumann (2004), degree elevation may be used for enlarging a developable patch by modifying the length of the ruling segments of the patch. The idea is simple. We may modify the length of the director vector

 w(u)=d(u)−c(u),

of each ruling by multiplication by a function ,

 ~w(u)=f(u)w(u)=~d(u)−c(u),

and as a consequence the boundary of the surface patch changes. For instance the new second curve starts at and ends at .

It is clear that this transformation just changes the patch of the developable surface that is covered by the parametrisation and it allows us to change the endpoints and of the first and last rulings. The only problem is that the curve is no longer a spline of degree . The simplest choice for the factor is an affine function , and in this case the new surface patch

 ~b(u,v)=(1−u)c(u)+v~d(u)

will be of degree . An example is shown in Figure 6.

The next step will be the calculation of the B-spline polygon of the new boundary of the extended surface patch.

First, we obtain the blossom of the new parametrised curve,

 ~d(u)=(1−f(u))c(u)+f(u)d(u).

The blossom is a -affine symmetric form for which

 ~d(u)=~d[u].

Since is an affine function, it is already its own blossom, . For the product it is simple to produce an -affine form satisfying ,

 ^h[u0,…,un]=f(u0)d[u1,…,un],

but this form is clearly non-symmetric.

However, we may obtain a symmetric form just by permuting the argument of the function ,

 h[u0,…,un]=n∑i=0f(ui)d[u0,…,ui−1,ui+1,…,un]n+1.

This form is -affine, symmetric and clearly . Hence, it is the blossom of the parametrisation .

We may use this result to conclude that the blossom of is given by

 ~d[u0,…,un]=n∑i=0f(ui)d[u0,…,ui−1,ui+1,…,un]n+1 +n∑i=0(1−f(ui))c[u0,…,ui−1,ui+1