surface creation and curve deformations between two

14
Surface Creation and Curve Deformations Between Two Complex Closed Spatial Spline Curves Joel Daniels II and Elaine Cohen University of Utah Abstract. This paper presents an algorithm to generate a smooth sur- face between two closed spatial spline curves. With the assumption that the two input curves can be projected to a single plane so that the pro- jections do not have any mutual or self intersections, and so that one projection completely encloses the other. We describe an algorithm that generates a temporal deformation between the input curves, one which can be thought of as sweeping a surface. Instead of addressing feature matching, as many planar curve deformation algorithms do, the defor- mation method described generates intermediate curves that behave like wavefronts as they evolve from the shape of one boundary curve to a medial type curve, and then gradually take on the characteristics of the second boundary curve. This is achieved in a manner that assures there will be neither singularities in the parameterization nor self-intersections in the projected surface. 1 Introduction This paper presents an algorithm to generate a parameterized spline surface be- tween two closed spatial spline curves. The input curves are allowed to have

Upload: others

Post on 02-Dec-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Surface Creation and Curve Deformations Between Two

Surface Creation and Curve Deformations

Between Two Complex Closed Spatial Spline

Curves

Joel Daniels II and Elaine Cohen

University of Utah

Abstract. This paper presents an algorithm to generate a smooth sur-face between two closed spatial spline curves. With the assumption thatthe two input curves can be projected to a single plane so that the pro-jections do not have any mutual or self intersections, and so that oneprojection completely encloses the other. We describe an algorithm thatgenerates a temporal deformation between the input curves, one whichcan be thought of as sweeping a surface. Instead of addressing featurematching, as many planar curve deformation algorithms do, the defor-mation method described generates intermediate curves that behave likewavefronts as they evolve from the shape of one boundary curve to amedial type curve, and then gradually take on the characteristics of thesecond boundary curve. This is achieved in a manner that assures therewill be neither singularities in the parameterization nor self-intersectionsin the projected surface.

1 Introduction

This paper presents an algorithm to generate a parameterized spline surface be-tween two closed spatial spline curves. The input curves are allowed to have

Page 2: Surface Creation and Curve Deformations Between Two

2

differing degrees, parameterizations and shapes; however, they must projectonto a single plane P without mutual or self intersections so that one projectedcurve completely encompasses the other. The algorithm creates a parameterizedsmooth spline surface, without any self-intersections, with the original closedcurves as the boundaries.

Techniques to generate a surface from boundary curves are often used ingeometric modeling. Usually, the interior of a surface is blended from four distinctboundary curves that correspond to mappings of the edges of the unit square.Our algorithm is quite different since it creates a surface between two quitedissimilar closed curves. This solution is related to surface completion solutionsthat build triangular patches to fill holes within a mesh [6, 7]. These methodsare useful in resolving gaps of a model when it is important to make it water

tight.

Designing parting surfaces for injection molds is another modeling applicationthat requires generating a surface between two closed spatial curves. An injectionmold clamps two components together, forming a cavity that defines the objectbeing molded. The parting curve of an object separates which parts of the objectare represented in each of the mold pieces. The parting surface is the interfacebetween the injection mold pieces that joins this parting curve with the mold’sboundary curve. When these two curves are non-planar and when creating aruled surface is not straightforward, then defining the parting surface can betechnically challenging. Our surface generation solution creates surfaces underthese very conditions.

Technique Overview Conceptually, the surface generation algorithm buildstwo continuously deforming curves that sweep the output surface between theinput spatial splines over time. Each curve deformation is constructed on P , theprojection plane, and originates at the projection of one of the two input curves.The deformations can be developed between curves with little or no commonfeature characteristics. The properties of our planar deformations guarantee thatthe surface swept by the temporal curve deformation on P has no singularitiesin the parameterization and never self-intersects. Therefore, the final output isa smooth height field over P that defines a surface in R3 blending the two inputspline curves.

2 Related Work

Surface Completion Hole filling or surface completion techniques investigateproblems that are related to the surface generation problem addressed here.There are two classes of research. One addresses holes bounded by piecewiselinear curves and derives piecewise planar triangulated results while the otheraddresses holes or regions bounded by curves.

Triangulation methods exist for simple holes bounded by polylines; however,these solutions do not apply in more complex geometric configurations. Manytechniques have addressed these challenges, for example, Davis et al. [7]; however,

Page 3: Surface Creation and Curve Deformations Between Two

3

we are interested in higher degree boundary curves for which piecewise linearrepresentations are not adequate.

One aspect of producing a spline blend surface between two closed curvesrequires constructing a tensor product parameterization. Using medial axis in-formation to aid in forming a parameterization, [15] develops a radial parame-terization of a region inside a planar boundary curve.

Curve Deformations Curve deformation research can be divided into two sepa-rate topic areas: feature matching and vertex paths. Feature matching establishesa correspondence between the major features of two curves, for example [5, 9,11, 17]. These techniques are able to pair similarities between two planar curves.However, considering the deformations as surfaces, self-intersections frequentlyoccur.

Consequently, the vertex path problem of curved deformations is more rele-vant to this research. Examples of this includes methods to prevent self-intersectionsintermediate shapes both locally [16] and globally [12]. While these methodsproduce better deformation paths, the surfaces swept by their algorithms maycontain singularities. This research is constrained in that no self-intersectionscan occur on any intermediate shape, nor can a single point be on more thanone temporal projected deformation curve.

Snakes and Active Contours In this literature image processing methodsplace curves within an image, then evolve them until they are oriented alongthe edges of contrast between neighboring pixels. These curves, termed snakes

or active contours [3, 13, 18, 19], minimize energy functions that are computedover the image’s pixels by using gradient descent methods. In the end, the activecontours are used to segment the image into a set of coherent components.

Our method for generating the surfaces is similar to these curve evolutionmethods. Conceptually, we initialize active contours to the projection of the in-put curves and deform each snake towards the other. Because our work uses thedeformation paths to parameterize a surface, it is necessary to address issuesthat do not concern the image processing community. These challenges includeresolution of the surface singularities that occur from stationary pieces of an ac-tive contour, parameterization matching of multiple active contours, and heightcomputations to create non-planar surfaces.

Robot Path Planning Related to the vertex path problem is the robotic pathplanning problem of computing paths for robot seeds to navigate through anenvironment filled with obstacles represented by polygonal shapes. Chuang [4]assigns each obstacle a potential function by defining a scalar value that dropsexponentially as the distance to the obstacle grows. The summation of thesefunctions over all obstacles in the environment defines a potential field. Therobot’s motion is computed by gradient descent techniques.

To define a global minimum within the potential field, goal destinations havebeen assigned negative potential functions [10]. However, some formations ofobstacles can create local minima that prevent trajectories from reaching theirtarget destinations. In [14] Lewis and Weir use intermediate goals as way-points

that can be used to navigate away from local minima.

Page 4: Surface Creation and Curve Deformations Between Two

4

Fig. 1. The surface generation algorithm, composed of four stages, uses the projectionof the input curves. (1) Compute vertex trajectories, (2) build a planar surface, (3)establishes C0 continuity between the two surfaces, and (4) lift the surfaces into 3D.

Robot path planning research has also investigated the collaborated move-ment of multiple agents. Balch and Hybinette [1] extend potential fields for grouppath planning by locally repelling robots from each other and developing socialpotentials. Social potentials are attraction locations associated with the robotsthat show good results in achieving formations during travel. We extend the con-cepts of robotic path planning techniques to address the vertex path problem ofcurve deformations within our algorithm for surface generation.Medial Axis Approximations The medial axis for a planar polygon shape isthe set of points equidistant to 2, or more, points on the polygon [8]. There aremany techniques to quickly compute piecewise linear medial axis approximationsfor planar polygonal shapes, which are adequate for our purposes as we projectthe curves to a plane. We assume that we are given an approximation of themedial axis of the region bounded by the projected curves.

3 Parametric Surface Generation

The algorithm generates a parameterized spline surface between the input curves,γ1(u) where u ∈ Iu and γ2(v) where v ∈ Iv , by developing a curve deformationbased on γ1(u) and γ2(v), the curves that have been projected on to P . LetCi = {ci,j}j denote the control polygon for γi. The technique, illustrated inFigure 1, can be decomposed into four main stages:

1: Compute vertex paths from the control points of γ1(u) and γ2(v) to a

medial axis approximating polyline between the projected curves.

2: Compute two planar curve deformations, σ1(u, t) and σ2(v, t), from the

trajectories that sweep surfaces without overlaps.

3: Refine and relax σ1(u, t) and σ2(v, t) until ∃f : Iu → Iv such that σ1(u, 1) =σ2(f(u), 1) and f is continuous and a bijection.

4: Lift σ1(u, t) and σ2(v, t) to define σ1(u, t) and σ2(v, t) as height fields above

P , such that σ1(u, 0) ≡ γ1, σ2(u, 0) ≡ γ2, and σ1(u, 1) ≡ σ2(f(u), 1).

Page 5: Surface Creation and Curve Deformations Between Two

5

Fig. 2. (left) A visualization of Vr in acomplex concavity, (right) where vertextrajectories travel towards local minima.

Fig. 3. Classified skeleton segments: coreedges (blue), branch edges (green), andextraneous edges (dotted grey).

Consequently, the output surface is composed of two spline surfaces, σ1(u, t) andσ2(v, t). The following subsections describe each of these stages in further detail.

3.1 Stage 1: Vertex Trajectories

The goal of Stage 1 is to compute vertex trajectories for all ci,j of the twoprojected curves. These trajectories are defined as paths over time through avector field and serve as a basis for the control mesh of the final output surface.The vertex trajectories begin at ci,j and traverse the vector field V towardsan intermediate shape B which is piecewise linear. The following subsectionsfurther define B and explain how to construct a vector field in which the vertextrajectory curves are guaranteed to reach B and not intersect each other.Vector Field Without Local Minima Similar to the obstacles in a robotpath planning environment, the segments of C1 and C2 are assigned a repulsionvector field. The i, jth repulsion field is defined as:

vr,i,j(x) = ‖x − p‖−k(x − p

‖x − p‖),

where, the point p is the closest point on the line segment connecting ci,j andci,j+1 to the point, x, at which the force is being evaluated, and the exponent,k, controls the exponential fall off. The final repulsion field, Vr, is the sum allvr,i,j : Vr(x) =

l vr,1,l(x) +∑

k vr,2,k(x).Unfortunately, vertex trajectories that traverse Vr are not guaranteed to

reach B. As in robot path planning, local minima may arise within the complexconcavities formed by γ1(u) and/or γ2(v), illustrated in Figure 2.

Consequently, our algorithm requires a third input: a skeleton S of C1 andC2 on P . S is a medial axis approximation of the environment that is definedby a collection of polylines. The line segments, or edges, of S can be classified,illustrated in Figure 3, as one of three types: core, branch, or extraneous. A core

Page 6: Surface Creation and Curve Deformations Between Two

6

edge is a line segment of S that divides C1 from C2 on P . A branch edge is asegment that separates Ci from itself and is part of a polyline that originates ata core edge and terminates within a region of P that contains a local minimum.Lastly, an extraneous edge is a line segment that separates Ci from itself butis not part of a polyline ending near a local minimum. The vertex trajectorycomputation uses the classified edges of S to help define two additional vectorfields Va and Vf that overcome the motion towards local minima. We define anew vector field, V = Vr + Va + Vf , without local minima through which vertextrajectories can be computed for ci,j .

The set of core edges of S is a closed polyline on P between C1 and C2 thatdefines B with vertices {bi}i, the initial goal curve for the vertex trajectories.These edges are assigned global and local attraction functions, vg,i and vl,i, topull seed points towards their location. The final attraction vector field Va is thesum of all vg,i and vl,i: Va(x) =

i vg,i(x) + vl,i(x).The global attraction function attracts seed points no matter their distance

from the segment and is defined as:

vg,i(x) = ‖p− x‖−k(p − x

‖p − x‖).

The vg,i is assigned to the segment between bi and bi+1, where p is the closestpoint on that segment to the input x.

The second attraction function is designed to increase the local attractionfield so that vertex trajectories within this region will snap to the segment inan appropriate place. The influence of the function defined on a segment of B

is restricted to the viewable range of the segment. In this manner, the localattraction force disallows points from traveling parallel to a segment if they canbe snapped immediately to B. For the segment connecting bi to bi+1, the localattraction function is defined as:

vl,i(x) =

{

(s(p) cos( (r(p)−‖p−x‖)r(p) ) + s(p)

2.0 )( p−x‖p−x‖ ) for ‖p − x‖ ≤ r(p),

(0, 0) otherwise,

where, p is the closest point on the segment to x, r(p) determines the radiusof influence of the segment at p, and s(p) is a scalar value that controls themagnitude of the vectors. The linear interpolating function r is defined on eachsegment such that r(bi) = dcurve(bi) and r(bi+1) = dcurve(bi+1), where dcurve(y)is equal to the distance from the point, y, to the closest point on C1 and C2.Similarly, the magnitude scalar function, s, is a linear interpolant between s(bi)and s(bi+1). In practice we achieve good results by assigning s(bi) = r(bi) ands(bi+1) = r(bi+1).

Branch segments of S are used to guide seed points out of complex concavitiesby defining flow fields. The ith flow field is a locally defined vector field parallelassigned to a branch segment that connects points qi to qj of S:

vf,i(x) =

{

(s(p) cos( (r(p)−‖p−x‖)r(p) ) + s(p)

2.0 )(qj−qi

‖qj−qi‖) for ‖p − x‖ ≤ r(p),

(0, 0) otherwise,

Page 7: Surface Creation and Curve Deformations Between Two

7

Fig. 4. The same concave section of curve as Figure 2 with (left) a visualization ourvector field construction without local minima, (center) vertex trajectories trace to B,(right) seed repulsion avoid intersections that may result from numerical integration

where, p is the closest point on the segment to x. The orientation of qi and qj

is chosen so the flow field is parallel to the polyline and directed towards a coreedge of S (i.e. B). The maximum magnitude function, s, is evaluated for eachsegment to guarantee that s(qi) > ‖Vr(qi)‖ and s(qj) > ‖Vr(qj)‖. Therefore, theflow field, Vf (x) =

i vf,i ((x)), overpowers the motion towards local minimaof Vr and guarantees that trajectories will be able to reach B. The radius ofinfluence of each vf,i is measured at the endpoints, in the same manner as vl,i,such that r(q) = dcurve(q). Consequently, the influence of a flow field is restrictedto the concave region in which the branch edge resides.

The extraneous edges of S are ignored. Since no local minima exist in theseregions of Vr, seed points are not be trapped in their neighborhood.

The resulting vector field, V , is summed over all assigned forces, V (x) =∑

k vr,1,k(x) +∑

l vr,2,l +∑

m(vl,m(x) + vg,m(x)) +∑

n vf,n(x), and does notcontain local minima (see Figure 4). In this way, seed points placed within theenvironment, on P , can be guaranteed to trace successfully to B.

Neighbor Avoidance Path Computation Vertex trajectories computed withina continuous vector field can be guaranteed not to cross in their limit by theUniqueness Theorem [2]. We modify the vector field functions, vr,i,j , vg,i, vl,i,and vf,i, to satisfy the constraints of the Uniqueness theorem in Appendix A.

Then in theory, the vertex trajectories will not intersect each other. However,numerical integration methods used to compute these paths take discrete sam-pling steps. Even with fifth order Runge-Kutta approximation, there is enougherror in some pathological cases to cause path crossings. Consequently, additionalefforts are required to prevent such anomalous path intersections.

To avoid this problem, we assigns a repulsion force, identical to a scaledversions of that assigned to the core edges of S, to the vertex trajectories based onproximity of nearest neighbors. While these forces are able to prevent vertex pathintersections, they may introduce new local minima within V . The algorithm,illustrated in Figure 5, presents a method to compute the discrete steps of the

Page 8: Surface Creation and Curve Deformations Between Two

8

Fig. 5. Discrete vertex step computation for neighbor avoidance.

vertex trajectories that avoids the introduction of local minima. It applies theseforces only in the direction perpendicular to the desired direction of travel as a4 step process:

1: Approximate the desired step vector, s, of a vertex point, p, through V

with fifth order Runge-Kutta (see Figure 5a).

2: Extend the two neighbor paths of the vertex by estimating a number offuture steps, then compute their repulsion force, r =

v′g(s+ p), at thedesired step point (see Figure 5b).

3: Compute the component of r, r′, perpendicular to s (see Figure 5c).

4: Move the vertex point, p = s + r′ (see Figure 5d).

5: Repeat steps 1-4 until all trajectories intersect B.

This new vertex trajectory computation method relaxes the paths as theytravel through V . Forward progress is not hindered by the repulsion forces asonly the component perpendicular s is considered. Additionally, the estimation offuture steps for the neighbor paths aids in ensuring that the r′ will not allow thevertex path to cut in front of another trajectory. The neighbor avoidance and stepcomputation successfully navigates groups of vertices through V , while evenlyspreading the distances between paths that had been previously congested, asillustrated in Figure 4.

3.2 Stage 2: Planar Spline Surface Creation

Stage 2 generates a planar parameterization of a spline surface, σi from thevertex trajectories associated with the control points of γi. The knot vectorand degree of σi equals that of γi in the first parametric variable. This sectiondescribes the construction of a control mesh, Mi, that will be associated with σi.Consequently, it is necessary that Mi does not contain any intersections betweenits row and column edges so the spline variation diminishing property can beused to guarantee that σi is without self-intersections.

We extend a greedy data reduction algorithm to approximate the vertextrajectories with polylines that define the columns of Mi. Greedy data reduction

Page 9: Surface Creation and Curve Deformations Between Two

9

Fig. 6. 1-5 compute a C0 boundary between σ1 and σ2, and 6-8 align tangents.

of a curve is done by fitting the longest line segments to the curve withoutviolating a curvature approximation tolerance. Our extension performs the datareduction on the vertex trajectories simultaneously and adds a new violationmetric.

The algorithm initializes Mi to Ci. We advance the data reducing line seg-ments over all vertex trajectories in parallel. The approximation line segmentsare appended to the columns of Mi if advancing these line segments one moreposition will violate one of two conditions on any vertex trajectory. The firsttrigger condition is the classic curvature threshold test of the greedy algorithm.This guarantees that the polylines determined by the data reduction closely ap-proximate the computed vertex trajectories. In fact, the column polylines willconverge towards the computed trajectories as the threshold value is lowered tozero. The second trigger condition tests that the approximating line segmentsdo not intersect each other, nor the established rows and columns of the growingMi. This condition guarantees that the output mesh will not have any intersec-tions. While this process is described as a second independent stage, we run thecreation phase in parallel with Stage 1.

3.3 Stage 3: Boundary Computation

The goal of Stage 3 is to modify the control meshes, M1 and M2, to haveσ1(u, 1) ≡ σ2(v, 1) as they meet along the common boundary curve B ′. Becausethere is no restriction on the parameterizations and degrees of γi, B′ must be apiecewise linear. Each surface will degree-raise B′, so σi and the degree-raisedB′ will have matching knot vectors. Each column that terminates at a vertex

Page 10: Surface Creation and Curve Deformations Between Two

10

of B′ will have a knot value with multiplicity equal to the degree of σi. Thesecolumns will be referred to as multi-knot columns. At the multi-knot columns,σi breaks C1 continuity as a function of u (or v) to form the piece-wise linearshape of B′ despite the degree and parameterization of σi.

Stage 3 consists of eight steps, illustrated in Figure 6. The first five stepsalign σ1 and σ2 along a boundary with C0 continuity, while the final three stepsdefine tangents across this boundary. The tangents are defined such that theyare equal in direction (but not magnitude) to facilitate the construction of a G1

continuous boundary in Stage 4. The boundary alignment steps are as follows:

1: Compute a polyline, B′, along B

that connects all control pointsin the final row of σ1 and σ2.

2: Data reduction method removesextraneous points from B′.

3: For each vertex of B′, find theclosest control point in the finalrow of each σi. If point within athreshold distance, slide it to thevertex and relax the column.

4: Perform knot insertion of de-gree multiplicity on σi to createthe multi-knot columns that willalign closely to the vertices of B′.

5: Slide the new multi-knotcolumns to the vertices of B′.

6: Insert a new row between the lastand second to last rows of Mi.

7: For each multi-knot column, com-pute the halfway vector, h, of theneighbor edges in the final row.Slide the inserted control pointalong h until the length of thegrowing column edge is equal tooriginal length or an intersection inthe mesh is created.

8: For each non-multi-knot column,slide the inserted control pointalong the vector, h′, computed as alinear combination of the previousand next multi-knot columns’ h.

Stage 3 modifies σ1 and σ2, so they continuously span the region between γ1

and γ2 without self or mutual intersections. They meet along a polyline, B ′, suchthat a C0 boundary can be achieved despite the parameterizations and degreeof each σi, as shown in Figure 6 (step 8). Stage 3 performs the point sliding andrelaxation routines incrementally while modify surrounding rows and columnsto ensure that no overlaps are created.

3.4 Stage 4: 3D Surface Creation

The final stage lifts the planar surface parameterizations into 3D as height fieldsabove P , who’s unit normal is N . The surfaces, σ1 and σ2 do not contain fold-overs on P , and therefore, their corresponding 3D height fields, σ1 and σ2, arewell defined.

The computation of height components for the planar parameterizations issegmented into four steps as listed and illustrated in Figure 7. The final heightfield, the surface generation output, is composed of σ1 and σ2. The height com-putations smooth the output surface so that it is G1 continuous at all pointsexcept for small regions around the vertices of the piece-wise linear boundarycurve shared by σ1 and σ2.

Page 11: Surface Creation and Curve Deformations Between Two

11

9: Add a vector in the direction of N to each

control point in the first row of σi, such

that σi(u, 0) = γi(u).

10: Add a vector in the direction of N to each

control point in the final row of the two

surfaces, so σ1(u, 1) ≡ σ2(v, 1), and is a

weighted average of the heights assigned to

σ1(u, 0) and σ2(v, 0).

11: Add a vector in the direction of N to the

remaining control points as the weighted

average of the heights of previously com-

puted control points. The height compo-

nents computed in the previous steps for

the first and last rows of Mi serve as the

original sources for this height diffusion.

12: Relax heights across multi-knot columns of

σi and across the boundary shared by σ1

and σ2 for G1 continuity where possible.

Fig. 7. Steps 9-12 raise the planar parameterizations into 3D.

4 Conclusion

This paper presents a novel method of spline surface generation between twoclosed spatial boundary curves. The algorithm develops a spatial curve defor-mation solution that sweeps the well-behaved surfaces illustrated in Figure 8,by guaranteeing that intermediate curve shapes do not contain local or globalintersections between themselves nor each other.

The algorithm builds upon concepts traditionally found in robot path plan-ning, addressing navigational challenges associated with their gradient descentmethods. Our approach develops vector fields without local minima that guar-antee multiple vertices can simultaneously navigate through the environment totheir goal without intersections.

This surface generation solution is contains concepts that are applicable tonavigational challenges and curve deformations, but is also useful in geomet-ric modeling areas. Our algorithm, through implementation decisions and guar-antees, is able to automatically generate smooth parting surfaces for injectionmolds. The results directly parameterize the surface without the use of trimmedNURBS, while handling the complex concavities cause most other techniques tobehave poorly.Limitations Our algorithm requires a medial axis approximation to constructa vector field without local minima and where the global minima represents thegoal destinations. The medial axis can be computed quickly for planar polygonalshapes, but may be unstable in dynamic scenes. Many of the changes translate

Page 12: Surface Creation and Curve Deformations Between Two

12

Fig. 8. 3D generated surfaces (and curve deformations as black iso-curves) spanningbetween spatial curves, viewed from an angle and from above.

to modifications of extraneous edges, in which case our algorithm operates un-changed. However, the birth or death of a branch segment may pose a compu-tational challenge.

Implementation decisions limit the application of our algorithm. Becausewe built this system in order to produce parting surfaces for automated molddesigning, the algorithm must guarantee that the projection of the resultingsurface is without self-intersections. We plan to remove this restriction for futureapplication.Future Work This is a novel approach to surface generation and curve de-formations that is suggestive of multiple avenues of future work. We plan toimprove the algorithm allowing for wider range of input curve types and to de-velop parameterizations directly in R3 rather than on P . The concepts that dealwith curve deformation can benefit enforcement of a feature match, as well asextension to surface-to-surface deformations.Acknowledgments This work was supported in part by NIH 573996 and NSFIIS0218809. All opinions, findings, conclusions or recommendations expressed inthis document are those of the author and do not necessarily reflect the viewsof the sponsoring agencies.

5 Appendix A: Continuous Vector Field

The advantage of computing vertex trajectories within a vector field is that itcan be guaranteed that no two paths will intersect through the Uniqueness The-

orem[2] if the vector field is C1 continuous. Therefore, we modify the functions,vr, vg , vl, and vf , to guarantee that ∂V

∂tis continuous. The vector functions are

re-defined in terms of a new coordinate system that aligns the line segment along

Page 13: Surface Creation and Curve Deformations Between Two

13

the x-axis such that q1 = (0, 0) and q2 = (a, 0), for example:

vr,i,j(x, y) =

‖(x, y)‖−k( (x,y)‖(x,y)‖) for x < 0

(|y|)−k(0, y|y|) for 0 ≤ x < a

‖(x − a, y)‖−k( (x−a,y)‖(x−a,y)‖) otherwise,

Each of the transformed branch functions share a common structure:

F (x, y) =

f1(x, y) for x < a

f2(x, y) for a ≤ x < b

f3(x, y) otherwise.

However, for each function it can be shown that ∂f1(a,y)∂x

6= ∂f2(a,y)∂x

, and ∂f2(b,y)∂x

6=∂f3(b,y)

∂x. Therefore, two transition functions are defined to obtain C1 continuity

between the consecutive branch functions at x = a and x = b. The new vectorfield functions will have the form:

G(x, y) =

f1(x, y) for x < p1b

t1,2(x, y) for p1b ≤ x < p2a

f2(x, y) for p2a ≤ x < p2b

t2,3(x, y) for p2b ≤ x < p3a

f3(x, y) otherwise,

where, the transition function, ti,j(x, y), creates a C1 continuous bridge betweenfunctions fi(x, y) and fj(x, y). In other words, a transition function, ti,j(x, y),must satisfy the following set of conditions:

ti,j(pib, y) = fi(pib, y),∂ti,j

∂x(pib, y) = ∂fi

∂x(pib, y),

∂ti,j

∂y(pib, y) = ∂fi

∂y(pib, y),

ti,j(pja, y) = fj(pja, y),∂ti,j

∂x(pja, y) =

∂fj

∂x(pja, y),

∂ti,j

∂y(pja, y) =

∂fj

∂y(pja, y).

It can be shown that a transition function defined as:

ti,j(x, y) = fi(x, y)(x − pja

pib − pja

)2 + s(x, y)(x − pja

pib − pja

)(x − pib

pja − pib

) + fj(x, y)(x − pib

pja − pib

)2,

s(x, y) = −2fi(x, y)(x − pja)(pja − pib)

(pib − pja)2− 2fj(x, y)

(x − pib)(pib − pja)

(pja − pib)2,

satisfies the required list of conditions. Therefore, re-writing the vector fieldfunctions, v′

r, v′g , v′l and v′f , such that they are C1 continuous only requires sub-stituting into the generic branch function, G(x, y), where the transition functionsare defined above. The transition functions are used to span over some ε distancesuch that p1b = −ε, p2a = 0, p2b = a, and p3a = a + ε.

Because the final vector field functions are each individually C1 continuous,their sum, V , will also be continuous. The uniqueness theorem guarantees thatall seeds dropped within V will trace non-intersecting paths.

Page 14: Surface Creation and Curve Deformations Between Two

14

References

1. Balch, T., and Hybinette, M. Social potentials and scalable multi-robot for-mations. ICRA (2000).

2. Blanchard, P., Devaney, R., and Hall, G. Differential Equations. Interna-tional Thomson Publishing Inc., 1998.

3. Caselles, V., Kimmel, R., and Sapiro, G. Geodesic active contours. Interna-tional Journal of Computer Vision 22, 1 (February 1997), 61–79.

4. Chuang, J. Potential-based modeling of three-dimensional worksapce for obstacleavoidance. IEEE Transactions on Robtics and Automation 14, 5 (October 1998),778–785.

5. Cohen, S., Elber, G., and Yehuda, R. Matching of freeform curves. ComputerAided Design 29, 5 (1997), 369–378.

6. Curless, B., and Levoy, M. A volumetric method for building complex modelsfrom range images. In Proceedings of SIGGRAPH ’96 (1996), pp. 303–312.

7. Davis, J., Marschner, S., Garr, M., and Levoy, M. Filling holes in com-plex surfaces using volumetric diffusion. In Proceedings of the First InternationalSymposium on 3D Data Processing, Visualization and Transmission (3DPVT-02)(June 2002), IEEE Computer Society, pp. 428–438.

8. de Berg, M., van Kreveld, M., Overmars, M., and Schwarzkopf, O. Com-putational Geometry: Algorithms and Applications. Springer-Verlag Berlin Heidel-berg, 1997.

9. Elber, G. Metamorphosis of freeform curves and surfaces. Computer GraphicsInternational ’95 (June 1995), 29–40.

10. Ge, S., and Cui, Y. New potential functions for mobile path planning. IEEETransactions on Robotics and Automation 16, 5 (2000), 615–620.

11. Goldstein, E., and Gotsman, C. Polygon morphing using a multiresolutionrepresentation. Graphics Interface (1995), 247–254.

12. Gotsman, C., and Surazhsky, V. Guaranteed intersection-free polygon morph-ing. Computers and Graphics 25 (2001), 67–75.

13. Kass, M., Witkin, A., and Terzopolous, D. Snakes: Active contour models.International Journal of Computer Vision 1, 4 (January 1988), 321–331.

14. Lewis, J., and Weir, M. Using subgoal chaining to address the local minimumproblem. In Proceedings of Second International ICSC Symposium on Neural Com-putation (2000).

15. Martin, W., and Cohen, E. Surface completion of an irregular boundary curveusing a concentric mapping. In Fifth International Conference on Curves andSurfaces (June 2002).

16. Sederberg, T., Gao, P., Wang, G., and Mu, H. 2d blending shapes: Anintrinsic solution to the vertex path problem. In Proceedings of SIGGRAPH ’93(1993), vol. 27, pp. 15–18.

17. Sederberg, T., and Greenwood, E. A physically based approach to 2d shapeblending. Computer Graphics 26, 2 (July 1992), 25–34.

18. Tsai, A., Yezzi, A., and Willsky, A. Curve evolution implementation ofmumford-shah functional for image segmentation, denoising, interpolation, andmagnification. IEEE Transactions on Image Processing 10, 8 (August 2001).

19. Xu, C., and Prince, J. Snakes, shapes, and gradient vector flow. IEEE Trans-actions on Image Processing 7 (March 1998), 359–369.