Approximation of Variable Radius O set Curves ... - Semantic Scholar

Report 2 Downloads 86 Views
Computer-Aided Design , Vol. 25, No. 11, pp. 684{698, 1993.

Approximation of Variable Radius O set Curves and its Application to Bezier Brush Stroke Design Myung-Soo Kim Department of Computer Science POSTECH P.O. Box 125, Pohang 790-600, Korea

Eun-Joo Park Department of Computer Science POSTECH P.O. Box 125, Pohang 790-600, Korea.

Soon-Bum Lim LBP Business Division Trigem Computer, Inc. Samjung B/D, 237-11 Nonhyun Kangnam, Seoul 135-010, Korea.

Abstract

We present an algorithm to approximate the variable radius o set curves by cubic Bezier curves. The o set curve is approximated by a cubic Bezier curve which interpolates the positions and derivatives of the exact o set curve at both end points. Thus, it approximates the exact o set curve very closely near the curve end points, but not necessarily in the middle of the curve. Given a xed base curve, by changing the o set radius and its derivative at an end point, one can easily control the o set curve shape near the end point. To better control the o set curve shape in the middle of the curve, we use two global shape parameters (bias and tension) of the o set curve (see [16]). A variety of variable radius o set curves are easily generated by using six shape control parameters (the two o sets and their derivatives at both end points, and the bias and tension parameters). Each bristle of a Bezier brush stroke is represented by a variable radius o set curve. Even with simple linear interpolations of the six shape control parameters, the bristles are generated as cubic interpolations of the two boundary curves. The non-linear interpolability gives a great

exibility in modeling exible brush stroke shapes. As the shape control parameters are interpolated, the associated geometric meanings are also interpolated, which makes the designed brush stroke shapes look more natural. This is an improvement over the two previous methods [4, 19] which is based on linear interpolations of the two boundary curves. By applying the same interpolation scheme to the time span as well as to the brush stroke width, it becomes relatively easy to generate exible animated motions of brush strokes.

Key Words: O set, variable radius o set, bias, tension, brush stroke, animation 

This research was supported in part by KOSEF and Human Computers, Inc.

1

1 Introduction O setting is a geometric operation which expands a given object into a similar object by a certain extent. It has various important applications in tolerance analysis, cutter path generation for NC machine tools, collision-free path planning for robot motions, and for constant-radius rounding and lleting of solids [20]. Constant radius o setting for plane curves has attracted extensive research interests in computer aided design [7, 8, 9, 13, 14, 15, 18, 22]. Since exact o set curves have high degree curve equations which are computationally quite expensive [8, 9, 13], many authors have considered approximating the exact o set curves by low degree parametric curves [14, 15, 18, 22]. Klass [15] approximated the constant radius o set curve for a Hermite cubic curve by a similar Hermite cubic curve. The o set Hermite curve is determined by o setting the two curve end points and computing the derivatives of the o set curve at both end points. Tiller and Hanson [22] approximated the 2D o set for a NURB curve by a similar NURB curve. The control polygon for the approximated o set NURB curve is computed by o setting each line segment of the control polygon. Coquillart [5] presented a di erent method to compute the control polygon for the o set NURB curve. Her method is good for the 3D o set as well as for the 2D o set. Pham [18] presented a simple method to approximate the o set curve by a B-spline curve which interpolates a sequence of o set points for a set of control knots on a uniform cubic B-spline. Hoschek [14] suggested a method to approximate the derivatives of an o set curve at both end points by using the least squares method to a set of evenly distributed o set curve points. The above o set curve approximation methods estimate the approximation error by evaluating the di erences between the exact and the approximated o set curve points only at nitely many discrete sample points. Elber and Cohen [7] over-estimate the global error bound by a polynomial function and recursively subdivide the curve (near the parameter value for the maximum error) until the overall approximation error becomes less than a given error bound. Farouki and Ne [8, 9] give a detailed discussion on the analytic and algebraic properties of the plane o set curves. The degree complexity of the exact plane o set curve for a simple integral polynomial curve C (t) = (x(t); y(t)) is 4d?2?2 , where d is the maximum degree of x(t) and y(t), and  is the degree of gcd(x0 (t); y0 (t)) [9]. This means that the exact o set curve for a cubic plane curve may have degree 10. Plane curves with degrees higher than 3 are computational too expensive to be useful in practice. Ho mann [12, 13] suggested an o set curve generation method, without deriving any high degree curve equation, simply by doing a direct numerical curve tracing along the intersection curve of high-dimensional hyper-surfaces de ning an o set curve, however, the curve tracing itself involves many complex intermediate steps which make it run slow. Thus, for the time being, we should rely on simple approximation techniques for the o set curves. Considering various nice geometric properties and important engineering applications of the constant radius o setting, one could expect that the variable radius o setting { a generalization of the constant radius o setting { would have even more interesting mathematical properties and practical applications. In this paper, the variable radius o set curve is shown to have many mathematical properties similar to those of the constant radius o setting. Especially, we consider how to approximate the variable radius o set curves with cubic Bezier curves in a similar way to that of approximating the constant radius o set curves. The position and velocity of an exact o set curve is determined by the position, velocity, curvature, and o set of the original base curve. For a xed base curve C , the variable radius o set curve can be controlled by changing the variable o set radius function r(t), for 0  t  1, which may be given as a polynomial in t. A cubic polynomial function r(t) is completely determined by the four boundary values r(0); r(1); r0 (0), and r0 (1). These values have intuitive geometric meanings for the shape of an o set curve. That is, r(0) and 2

r(1) control the o set distances, and r0 (0) and r0 (1) control the tangent directions of the o set

curve at both curve end points. The o set cubic Bezier curve is determined by interpolating the boundary positions and derivatives of the exact o set curve. Thus, it approximates the exact o set curve very closely near the curve end points, but not necessarily in the middle of the curve. Given a xed base curve, by changing the o set radius and its derivative at an end point, one can easily control the o set curve shape near the end point. To e ectively control the o set curve shape in the middle of the curve, we use two global shape parameters which control the bias and tension of the curve (see [16]). A variety of variable radius o set curves are easily generated by changing the six shape control parameters (i.e., the two o sets and their derivatives at both ends, and the bias and tension of the curve). As an application of the variable radius o setting, we consider the design of Bezier brush strokes. Each Bezier brush stroke can be modeled by a one-parameter family of variable radius o set curves (approximated by cubic Bezier curves). Each bristle of a brush stroke is represented by a variable radius o set curve. Using the geometric shape control parameters for the o set curves, one can easily generate a family of bristles which have dramatic shape changes from the base curve. The modeling of exible brush strokes becomes relatively simple using this brush stroke modeling scheme. A few authors have used the variable radius o setting to model brush strokes [4, 19]. Pham [19] modeled brush strokes with the variable radius o set curves for uniform B-spline curves. The variable o set distances are speci ed on each knot of the B-spline curve. Using a similar method to her previous result [18], Pham [19] interpolates the knot o sets with a B-spline curve. Each bristle of a brush stroke is generated in a similar way using the knot points which are generated by linearly interpolating the corresponding knot points for the base B-spline curve and the o set boundary B-spline curve. Chua [4] used two Bezier curves to model the boundary of a Bezier brush stroke. Each bristle is generated by a control polygon which is a linear interpolation of the two control polygons de ning the two boundary Bezier curves. These two previous methods [4, 19] essentially model each bristle as a linear interpolation of the two boundary curves. Based on the simultaneous changes of shape control parameters, our method generate a family of bristles which are non-linear combinations of the two boundary curves. This is an improvement over the previous methods [4, 19]. The hierarchical structure of brush stroke modeling (i.e., the base curve design and the variable radius o setting with the shape control parameters) makes the control of exible brush stroke shapes relatively easy and intuitive. This in turn makes the coordinated motion control of brush strokes relatively easy, too. There are also other related works on modeling brush strokes using di erent methods. Ghosh and Mudur [11] derived analytic solutions to describe the outline of a brush-trajectory. Ahn, Kim, and Lim [2] considered the brush trajectory generated by an arbitrary shape brush which changes its shape dynamically while it moves along an arbitrary plane curve trajectory. They approximate the boundary of such a general brush sweep by a polygon. Strassman [21] simulates the brush painting by modeling the phenomena of brush, stroke, dip, and paper. These methods are computationally more expensive than the simple brush stroke design method suggested in this paper. This paper is organized as follows. In x2 mathematical preliminaries are presented for the algebraic and di erential properties of the exact constant and variable radius o set curves. In x3 the variable radius o set curves for cubic Bezier base curves are approximated by similar cubic Bezier curves. In x4 we show how to control the variable radius o set curves by using various intuitive geometric parameters. In x5 Bezier brush stokes are designed with the variable radius o set curves. Comparisons are also made with the previous methods of brush stroke modeling [4, 19]. In x6 we conclude this paper. 3

2 Exact O set Curves In this section, we derive algebraic formula de ning the exact constant and variable radius o set curves for both parametric and implicit planar algebraic curves. For a given base curve C , the constant radius o setting with respect to a xed radius r transforms each curve point p into the point pr at a distance r towards the curve normal direction Np at p, whereas the variable radius o setting transforms each curve point p into the point pr at a variable distance rp towards the curve normal direction Np at p. As we will discuss in the following subsections x2.1{x2.2, the formula de ning a variable radius o set curve are obtained from the formula for a constant radius o set curve simply by replacing the constant o set radius r with the variable o set radius function r(t) for a parametric curve and r(x; y) for an implicit curve. The variable radius o set curve has the same degree complexity as the constant radius o set curve as long as degfr(t)g  maxfdeg x(t); deg y(t)g for a parametric curve C (t) = (x(t); y(t)) and degfr(x; y)g  2 for an implicit curve f (x; y) = 0. The result is, however, quite pessimistic since the exact o set curves even for simple plane algebraic curves such as conics and cubics have very high degrees. For example, the constant radius o set curve for a general plane cubic curve has degree 10. It is even impossible to parametrize such a high degree curve with rational polynomials unless it has enough double points, i.e., 20 double points for a degree 10 plane algebraic curve [1]. Thus, for the time being, we may have to use simple approximation techniques for o set curves. There are many previous algorithms to approximate the exact constant radius o set curves by low degree parametric curves [14, 15, 18, 22]. In x3 we suggest a method to approximate the variable radius o set curves by cubic Bezier curves. For the approximation, we need a formula which relates the derivative of the variable radius o set curve to that of the original base curve. In x2.3 we derive a di erential formula for this relation.

2.1 Constant Radius O set Curves

For a parametric curve C (t) = (x(t); y(t)), the unit normal direction vector N (t) = NC (t) = Np of the curve at p = C (t) = (x(t); y(t)) is given as (y0 (t); ?x0 (t)) N (t) = Np = p 0 2 0 2 : x (t) + y (t) The o set curve Cr (t) = (xr (t); yr (t)) of C (t) with respect to a radius r is given as y0 (t) ?x0(t) Cr (t) = (xr (t); yr (t)) = C (t) + r  N (t) = (x(t) + r  p 0 2 0 2 ; y(t) + r  p 0 2 0 2 ): x (t) + y (t) x (t) + y (t) Thus, we have 0 0 (xr (t) ? x(t); yr (t) ? y(t)) = (r  p 0 y2(t) 0 2 ; r  p 0 ?x2 (t) 0 2 ) x (t) + y (t) x (t) + y (t) and ?y0(t)  x0(t) x0 (t)  y0 (t) x0 (t)  (xr (t) ? x(t)) + y0 (t)  (yr (t) ? y(t)) = r  p 0 2 0 2 + r  p 0 2 0 2 = 0: x (t) + y (t) x (t) + y (t) The o set curve Cr (t) satis es the following equations. ( 0 x (t)  (xr (t) ? x(t)) + y0 (t)  (yr (t) ? y(t)) = 0 (1) (xr (t) ? x(t))2 + (yr (t) ? y(t))2 = r2 (2) 4

An implicit algebraic equation fr (xr ; yr ) = 0 for the o set curve Cr (t) can be obtained by eliminating the variable t from the following two equations (10 ){(20 ) which are obtained by setting xr = xr (t) and yr = yr (t) in the above two equations (1){(2). ( 0 x (t)  (xr ? x(t)) + y0 (t)  (yr ? y(t)) = 0 (10 ) (xr ? x(t))2 + (yr ? y(t))2 = r2 (20 ) When the two coordinate functions x(t) and y(t) are integral polynomials of t, the corresponding implicit curve equation fr (xr ; yr ) = 0 has degree 4d ? 2 ? 2 , where d is the degree of the curve C (t) and  is the degree of gcd(x0 (t); y0 (t)) [9].

Example 2.1 [9]

The o set curve for the parabola C (t) = (t; t2 ) has degree 6, i.e., fr (xr ; yr ) = 16x4r (x2r + yr2 ) ? 8x2 yr (5x2r + 4yr2 ) ? (48r2 ? 1)x4r ? 32(r2 ? 1)x2r yr2 +16yr4 + 2(4r2 ? 1)x2r yr ? 8(4r2 + 1)yr3 + 4r2 (12r2 ? 5)x2r +(4r2 ? 1)2 yr2 + 8(4r2 + 1)yr ? r2 (4r2 + 1)2 :

A plane algebraic curve of degree d can have a rational parametrization if and only if it has (d ? 1)(d ? 2)=2 double points [1, 12]. Thus, a degree 6 plane algebraic curve should have 10 double points so that it can be parametrized by rational polynomials. There are algorithms for counting the number of double points, however, they are nontrivial [1]. For an implicit curve C de ned by f (x; y) = 0, the unit normal direction Np of the curve at a non-singular point p = (x; y) is given as (f ; f ) Np = q x y : fx2 + fy2 The o set curve Cr of C with respect to a radius r is the set of points pr = (xr ; yr ) such that pr = (xr ; yr ) = p + r  Np = (x + r  q

fx

fx2 + fy2

; y+r q

fy

fx2 + fy2

):

The point pr = (xr ; yr ) also satis es the following simultaneous equations 8 > (1) < f (x; y) = 0 and p = (x; y) 2 C (x ? x)  f (x; y) ? (y ? y)  f (x; y) = 0 (2) > : (xrr ? x)2 +y (yr ? y)2 =r r2 x (3) The implicit equation fr (xr ; yr ) = 0 for the o set curve Cr can be obtained by eliminating the variables x and y from the above equations (1){(3). The algebraic curve fr (xr ; yr ) = 0 has degree 2  d2 , where d is the degree of f . This means that the o set curve fr = 0 has degree 8 for a conic curve f = 0 and degree 18 for a cubic curve f = 0.

5

2.2 Variable Radius O set Curves

For a variable o set radius function r(t) which is given as a function of t along the curve C (t), the corresponding o set curve Cr (t) is given by ?x0(t) y0 (t) Cr (t) = C (t) + r(t)  N (t) = (x(t) + r(t)  p 0 2 0 2 ; y(t) + r(t)  p 0 2 0 2 ): x (t) + y (t) x (t) + y (t) The o set curve Cr (t) satis es the following equations. ( 0 x (t)  (xr (t) ? x(t)) + y0 (t)  (yr (t) ? y(t)) = 0 (1) (xr (t) ? x(t))2 + (yr (t) ? y(t))2 = r(t)2 (2) An implicit algebraic equation fr (xr ; yr ) = 0 for the o set curve Cr (t) can be obtained by eliminating the variable t from the following two equations (10 ){(20 ) which are obtained by setting xr = xr (t) and yr = yr (t) in the above two equations (1){(2). ( 0 x (t)  (xr ? x(t)) + y0 (t)  (yr ? y(t)) = 0 (10 ) (xr ? x(t))2 + (yr ? y(t))2 = r(t)2 (20 ) Using a similar proof to that of [9], one can easily prove that, when x(t), y(t), and r(t) are integral polynomials of t, the implicit curve equation fr (xr ; yr ) = 0 has degree 4d ? 2 ? 2 , where d is the maximum degree of the polynomials x(t), y(t), and r(t), and  is the degree of gcd(x0 (t); y0 (t)). For a variable o set radius function r(x; y) which is de ned for the points p = (x; y) along the curve C de ned by f (x; y) = 0, the corresponding o set curve Cr of C with respect to a radius r(x; y) is the set of points pr = (xr ; yr ) such that f ; y + r(x; y)  q x ): fx2 + fy2 fx2 + fy2

pr = (xr ; yr ) = p + r(x; y)  Np = (x + r(x; y)  q

fy

The point pr also satis es the following simultaneous equations 8 > (1) < f (x; y) = 0 and p = (x; y) 2 C (x ? x)  f (x; y) ? (y ? y)  f (x; y) = 0 (2) > : (xrr ? x)2 +y (yr ? y)2 =r r(x; y)2x (3) The implicit equation fr (x; y) = 0 for the o set curve Cr can be obtained by eliminating the variables x and y from the above equations (1){(3). The algebraic curve fr (x; y) = 0 has degree maxf2; dr g  d2 , where dr is the degree of r(x; y). For a linear or quadratic function r(x; y), fr (xr ; yr ) = 0 has the same degree as a constant-radius o set curve. The degree complexities for the exact constant and variable o set curves are too high to be useful in practice. Further, some o set curves even for simple conic curves such as an ellipse may not have rational parametrizations. Processing non-rational algebraic curves is quite dicult since there is no algebraic algorithm for them. Thus, we have to consider ecient approximation techniques for the o set curves.

2.3 Derivatives for O set Curves

The constant radius o set curve Cr (t) has the same tangent direction as the original curve C (t) at the same time parameter t, i.e., we have Cr0 (t) == C 0 (t); for 0  t  1; 6

and equivalently,

Cr0 (t) = (t)  C 0 (t) for some real function (t): The function (t) depends on the curvature (t) of C (t) at t, which is an intrinsic local geometric

quantity for the curve.

Lemma 2.2 The constant radius o set curve Cr (t) for a parametric curve C (t) with respect to a radius r has its derivative Cr0 (t) determined by

Cr0 (t) = (t)  C 0(t) = (1 + r  (t))  C 0 (t)

Proof:

d p y0 (t) y00 (t)  (x0 (t)2 + y0 (t)2 ) ? y0 (t)  (x0 (t)x00 (t) + y0 (t)y00 (t)) = dt x0 (t)2 + y0 (t)2 (x0 (t)2 + y0 (t)2 )3=2 0 00 00 0 0 = (x (t)y (0 t) ?2 x (0t)y2(t3))=2  x (t) (x (t) + y (t) ) d p ?x0 (t) = dt x0 (t)2 + y0 (t)2

?x00(t)  (x0 (t) + y0(t) ) + x0(t)  (x0 (t)x00 (t) + y0(t)y00 (t)) 2

2

(x0 (t)2 + y0 (t)2 )3=2 0 00 00 x (t)y0 (t))  y0 (t) = (x (t)y (0 t) ? (x (t)2 + y0 (t)2 )3=2

Thus, we have d p(y0 (t); ?x0 (t)) dt x0 (t)2 + y0 (t)2 0 00 00 0 = (x (t)0 y (2t) ? 0x (2t)x3=2(t))  (x0 (t); y0 (t)) (x (t) + y (t) ) = (t)  C 0 (t):

N 0 (t) =

This implies Cr0 (t) = C 0(t) + rN 0 (t) = C 0 (t) + r(t)  C 0 (t) = (1 + r(t))  C 0 (t):

We now consider the variable radius o setting for C (t). However, in this case, the exact variable radius o set curve Cr (t) may not have the same tangent direction as the original curve C (t) at t. Lemma 2.3 The variable radius o set curve Cr (t) for a parametric curve C (t) with respect to a variable o set radius function r(t) has its derivative Cr0 (t) determined by Cr0 (t) = (1 + r(t)  (t))  C 0(t) + r0 (t)  N (t) = (t)  C20 (t) + r0 (t)  N (t) 3 r0 (t) p

( t ) ? x0 (t)2 +y0 (t)2 7 = C 0 (t)  64 p r0 (t) 5

(t) x0 (t)2 +y0 (t)2

7

Proof: Cr0 (t) = C 0 (t) + r(t)N 0 (t) + r0(t)N (t) = (1 + r(t)  (t))  C 0(t) + r0 (t)  N (t) = (t)  C 0 (t) + r0 (t)  N (t) = C 0 (t)  (t) + N (t)  r0 (t) 0 = C 0 (t)  (t) + (y0 (t); ?x0 (t))  p 0 r2(t) 0 2 x (t) + y (t)

# " # 1 0  (t) + (x0 (t); y0 (t))  0 ?1  p r0 (t) 0 1 1 0 x0 (t)2 + y0 (t)2 3 2 r0 (t) " # p 0 ? x0 (t)2 +y0 (t)2 7 = C 0 (t)  (0t) (0t) + C 0 (t)  64 p r0 (t) 5 0 x0 (t)2 +y0 (t)2 3 2 r0 (t) p

( t ) ? x0 (t)2 +y0 (t)2 7 = C 0 (t)  64 p r0 (t) 5:

( t ) 0 2 0 2 x (t) +y (t) = C 0 (t) 

"

3 Approximation of O set Curves In this section, we consider how to approximate the constant and variable radius o set curves for cubic Bezier curves by similar cubic Bezier curves. The begin and end points for an approximate o set cubic Bezier curve can be computed exactly. We approximate the begin and end velocities of the o set curve using a similar method to that of Klass [15] or Hoschek [14]. The velocity of a constant radius o set curve is always parallel to that of the original curve, however, the velocity of a variable radius o set curve may not be parallel to that of the original curve. When the variable o set radius function has a non-zero derivative, the variable radius o set curve may have its tangent direction di erent from that of the original curve. Lemma 2.2{2.3 gives the relationship between the velocity of the o set curve and that of the original curve. We generalize the method of Klass [15] by using the formula shown in Lemma 2.3. The method of Hoschek [14] can be extended by using the least squares method to determine the magnitudes of the approximate o set Bezier curve velocities along the tangents of the exact variable radius o set curve at both end points.

3.1 Cubic Bezier Curve

A cubic Bezier curve C (t), for 0  t  1, with four control points pi = (xi ; yi ), i = 0; 1; 2; 3, is de ned by 3 X C (t) = pi Bi (t); for 0  t  1; i=0

where

Bi (t) =

3

!

i

ti  (1 ? t)3?i :

That is, C (t) = (1 ? t)3  p0 + 3(1 ? t)2 t  p1 + 3(1 ? t)t2  p2 + t3  p3

8

C 0(t) =

?3(1 ? t)  p + [3(1 ? t) ? 6(1 ? t)t]  p + [6(1 ? t)t ? 3t ]  p + 3t  p = 3(1 ? t)  [p ? p ] + 6(1 ? t)t  [p ? p ] + 3t  [p ? p ] C 00(t) = 6(1 ? t)  p + [?12(1 ? t) + 6t]  p + [?12t + 6(1 ? t)]  p + 6t  p = 6(1 ? t)  [p ? 2p + p ] + 6t  [p ? 2p + p ]: 2

2

0

2

1

2

1

0

2

0

2

1

3

1

2

1

2

2

3

2

1

0

2

2

3

3

Thus, we have C (0) = p0 ; C (1) = p3 C 0 (0) = 3  [p1 ? p0 ]; C 0 (1) = 3  [p3 ? p2 ] C 00 (0) = 6  [p0 ? 2p1 + p2 ]; C 00 (1) = 6  [p1 ? 2p2 + p3 ]:

Let N0 = N (0), N3 = N (1), 0 = (0), 3 = (1), then these quantities can be computed by the following equations. " # C 0 (0) 0 ? 1 N0 = N (0) = kC 0 (0)k  1 0 " # p1 ? p0 0 ? 1 = kp ? p k  1 0 1

0

3

2

= p (y1 ? y02; x0 ? x1 ) 2 ; (x1 ? x0 ) + (y1 ? y0 ) " # C 0 (1) 0 ? 1 N3 = N (1) = kC 0 (1)k  1 0 " # p3 ? p2 0 ? 1 = kp ? p k  1 0 = p (y3 ? y22; x2 ? x3 ) 2 ; (x3 ? x2 ) + (y3 ? y2 )

(C 0 (0)  C 00 (0))  (0; 0; 1) kC 0(0)k3 [p2 ? p1 ])  (0; 0; 1) = 32  ([p1 ? p0 ]  kp1 ? p0k3 = 32  (x1 ? x0 )(y2 ? y12) ? (x2 ? x12)(3y=12 ? y0 )) ; ((x1 ? x0 ) + (y1 ? y0 ) )

0 = (0) =

(C 0 (1)  C 00 (1))  (0; 0; 1) kC 0(1)k3 [p1 ? p2 ])  (0; 0; 1) = 32  ([p3 ? p2 ]  kp3 ? p2k3 = 32  (x3 ? x2 )(y1 ? y22) ? (x1 ? x22)(3y=32 ? y2 )) : ((x3 ? x2 ) + (y3 ? y2 ) )

3 = (1) =

9

3.2 Approximation of Constant Radius O set Curves

We rst consider the constant radius o setting of C (t). The o set curve Cr (t) satis es the following conditions: Cr (0) = C (0) + r  N (0) = p0 + r  N0 ; Cr (1) = C (1) + r  N (1) = p3 + r  N3 ; 0 Cr (0) = (0)  C 0 (0) = 3  (0)  [p1 ? p0 ]; Cr0 (1) = (1)  C 0 (1) = 3  (1)  [p3 ? p2 ]:

We approximate the o set curve Cr (t) by a cubic Bezier curve Cr (t) with four control points (p0 )r ; (p1 )r ; (p2 )r ; (p3 )r . The cubic curve Cr (t) is uniquely determined by the following four conditions: Cr (0) = Cr (0); Cr (1) = Cr (1); Cr0 (0) = Cr0 (0); Cr0 (1) = Cr0 (1): The o set points (p0 )r and (p3 )r from the two end points p0 and p3 can be computed as follows: (p0 )r = Cr (0) = Cr (0) = p0 + r  N0 ; (p3 )r = Cr (1) = Cr (1) = p3 + r  N3 : Let 0 = (0) and 3 = (1), then the two middle control points (p1 )r and (p2 )r of the cubic Bezier curve Cr (t) can be derived as follows: 3  [(p1 )r ? (p0 )r ] = Cr0 (0) = (0)  Cr0 (0) = 3  0  [p1 ? p0 ]; (p1 )r = (p0 )r + 0  [p1 ? p0 ] = (p0 )r + (1 + r  0 )  [p1 ? p0 ]; and 3  [(p3 )r ? (p2 )r ] = Cr0 (1) = (1)  Cr0 (1) = 3  3  [p3 ? p2 ]; (p2 )r = (p3 )r + 3  [p2 ? p3 ] = (p3 )r + (1 + r  3 )  [p2 ? p3 ]: These formula are reminiscent of the conditions for cubic Hermite curves. The cubic Bezier curve Cr (t) determined by the above four control points may produce a good approximation of the exact o set curve Cr (t) near the end points, but not in the middle of the curve. If it is the case, we can either subdivide the original curve segment into two subsegments and repeat the same approximation procedures recursively to these subcurves, or modify some of the four control points so that the modi ed curve Cr (t) approximates the exact o set curve better. By controlling the two parameters 0 and 3 , we can control the two middle control points (p1 )r and (p2 )r , and thus the global shape of the cubic Bezier curve Cr (t). To determine the parameters 0 and 3 for a cubic Bezier curve Cr (t) which approximates the exact o set curve Cr (t) very closely, not only near the end points of the curve but also in the middle of the curve, we can generate a sequence of evenly distributed discrete o set curve points on Cr (t) by considering the curvature of C (t), and select the parameters 0 and 3 by taking the least squares of the errors between the approximating curve C (t) and the generated discrete o set curve points.

10

3.3 Approximation of Variable Radius O set Curves

We next consider the variable radius o setting of C (t). Let r0 = r(0); r3 = r(1); r00 = r0 (0); r30 = r0 (1), then the o set curve Cr (t) satis es the following conditions: Cr (0) Cr (1) Cr0 (0) Cr0 (1)

= = = =

C (0) + r(0)  N (0) = p0 + r0  N0 ; C (1) + r(1)  N (1) = p3 + r3  N3 ;

(0)  C 0 (0) + r0 (0)  N (0) = 3  (0)  [p1 ? p0 ] + r00  N0 ;

(1)  C 0 (1) + r0 (1)  N (1) = 3  (1)  [p3 ? p2 ] + r30  N3 :

We approximate the variable o set curve Cr (t) by a cubic Bezier curve Cr (t) with four control points (p0 )r ; (p1 )r ; (p2 )r ; (p3 )r . The cubic curve Cr (t) is uniquely determined by the following four conditions: Cr (0) = Cr (0); Cr (1) = Cr (1); Cr0 (0) = Cr0 (0); Cr0 (1) = Cr0 (1): The o set points (p0 )r and (p3 )r from the two end points p0 and p3 are given as follows: (p0 )r = Cr (0) = Cr (0) = p0 + r0  N0 ; (p3 )r = Cr (1) = Cr (1) = p3 + r3  N3 : Let 0 = (0) and 3 = (1), then the two middle control points (p1 )r and (p2 )r of the cubic Bezier curve Cr (t) can be derived as follows: 3  [(p1 )r ? (p0 )r ] = Cr0 (0) = (0)  Cr0 (0) + r0(0)  N (0) = 3  0  [p1 ? p0 ] + r00  N0 ; (p1 )r = (p0 )r + 0  [p1 ? p0 ] + 31  r00  N0 = (p0 )r + (1 + r0  0 )  [p1 ? p0 ] + 31  r00  N0 ; and 3  [(p3 )r ? (p2 )r ] = Cr0 (1) = (1)  Cr0 (1) + r0(1)  N (1) = 3  3  [p3 ? p2 ] + r30  N3 ; (p2 )r = (p3 )r + 3  [p2 ? p3 ] ? 31  r30  N3 = (p3 )r + (1 + r3  3 )  [p2 ? p3 ] ? 31  r30  N3 : Similarly to the constant radius o setting, the approximate cubic Bezier curve Cr (t) determined by the above four control points may not produce a good approximation of the exact o set curve Cr (t) in the middle of the curve. To generate a better approximation of the o set curve, we may subdivide the original curve segment into two subsegments and repeat the same approximation procedures recursively to these subcurves. However, in the case of variable radius o setting, we should be very careful to maintain the tangent continuity of two adjacent approximate o set cubic Bezier curve segments. Di erently from the constant radius o setting, when we control the two parameters 0 and 3 , the generated cubic Bezier curve Cr (t) may change its tangent directions at the end points. To keep the tangent directions at the end points xed, we have to control the positions of the two middle control points (p1 )r and (p2 )r along their respective xed tangent lines. This can be done by controlling the two parameters s1 and s2 as follows: (p1 )r = (p0 )r + s1  [(1 + r0  0 )  (p1 ? p0 ) + 31  r00  N0 ]; (p2 )r = (p3 )r + s2  [(1 + r3  3 )  (p2 ? p3 ) ? 31  r30  N3 ]: 11

To generate an o set cubic Bezier curve Cr (t) which approximates the exact o set curve Cr (t) very closely, we can generate a sequence of evenly distributed discrete o set curve points on Cr (t) by considering the curvature of C (t) as well as the o set radius function r(t), and determine the two parameters s1 and s2 by taking the least squares of the errors between the approximating curve C (t) and the generated discrete o set curve points.

4 Shape Control Parameters for Variable Radius O set Curves After the four default control points (p0 )r ; (p1 )r ; (p2 )r ; (p3 )r have been determined for the approximate o set cubic Bezier curve, the curve designer may want to modify the o set curve shape. A simple way of doing this is directly changing the four control points, however, this direct method does not give much intuitions to the user. Since designing a single planar cubic curve is an extremely simple matter, one may hardly see any diculties in manipulating the four control points directly. When one considers more general cases such as controlling an animated motion of a cubic curve or modeling a family of cubic curves for a brush stroke, one can easily realize the lack of intuitions in the direct manipulation of control points. To make the shape control of variable radius o set curves easier, we use several shape control parameters which have intuitive geometric meanings. The o set curve shape can be controlled by changing the parameters r0 ; r3 ; r00 ; r30 . The o set radius parameters r0 and r3 control the o set distances of the curve at both end points, and the o set radius derivative parameters r00 and r30 control the tangent directions of the o set curve at both end points (see Figure 1(a){(b)). Note that the shape controls with r0 and r3 also change the o set curve tangent directions, and the shape controls with r00 and r30 change the o set distances near the end points, too. These e ects are insigni cant, however. When the o set cubic Bezier curve Cr (t) is modi ed by changing the parameters r0 and r00 , the rst two control points (p0 )r and (p1 )r of Cr (t) are recomputed. For the curve Cr (t) to be connected smoothly with the previous o set cubic Bezier curve C^r (t), the last two control points (^p2 )t and (^p3 )r of C^r (t) should be recomputed using the following conditions: r^3 = r0 ; r^30 = r00 ; ^3 = 0 :

When we change only the magnitude of the velocity of Cr (t) along the tangent direction at the begin point, we do not need to modify the previous o set curve segment C^r (t) to maintain the tangent direction continuity (G1 -continuity). As we have discussed in x3, the velocities of Cr (t) at both end points can be easily controlled (without changing the tangent directions) by changing only the two parameters s1 and s2 as follows: (p1 )r = (p0 )r + s1  [(1 + r0  0 )  (p1 ? p0 ) + 31  r00  N0 ]; (p2 )r = (p3 )r + s2  [(1 + r3  3 )  (p2 ? p3 ) ? 31  r30  N3 ]:

The parameters s1 and s2 control the o set curve shape near the end points of the curve. Since the approximate o set cubic Bezier curve Cr (t) is constructed by interpolating the boundary positions and velocities of the exact o set curve, the approximate o set cubic Bezier curve has a better approximation near the curve end points rather than in the middle of the curve. Thus, we need a better way to control the curve shape in the middle of the curve. We use two global shape parameters and which control the bias and tension of the o set curve (see [16]). The e ect of the bias and tension control occurs most prominently in the middle of the curve. These parameters 12

(a) radius control

(b) radius and its derivative control

(c) bias control

(d) tension control

Figure 1: Shape Control Parameters for Variable Radius O set Curves.

13

(a) bias control

(b) tension control

Figure 2: Tension Control with a Base Curve with an In ection Point.

Figure 3: Tension Control with a Base Curve without an In ection Point. 14

and are related with s1 and s2 as follows (also see [16]): s1 = (1 + )  (1 + ) and s2 = (1 ? )  (1 + )

Thus, we have (p1 )r = (p0 )r + (1 + )  (1 + )  [(1 + r0 0 )  (p1 ? p0 ) + 13 r00  N0 ]; (p2 )r = (p3 )r + (1 ? )  (1 + )  [(1 + r3 3 )  (p2 ? p3 ) ? 13 r30  N3 ]: The default values for and are 0's. By changing the value , we can shift the curve shape to the left and to the right (see Figure 1(c)). Thus, the parameter models the bias of the cubic Bezier curve. By changing the value , we can control the tension of the curve turning in the middle of the curve (see Figure 1(d)). When the base curve has an in ection point, as the value of increases, the tension of the curve (turning around the in ection point) increases (see Figure 2). When the base curve has no in ection point, as the value of increases, the control polygon for the o set cubic Bezier curve becomes self-intersected and then the o set curve itself becomes self-intersected (see Figure 3). Before the curve has a self-intersection, the curve becomes very sharp and then comes to have a cusp in the middle of the curve. Thus, the parameter models the tension of the cubic Bezier curve.

5 Bezier Brush Stroke Design In the previous section x4, we have discussed how to modify the shape of an o set cubic Bezier curve by changing the o set radius parameters r0 ; r3 ; r00 ; r30 which control the o set distances and tangent directions at the curve end points, and further by changing the two intuitive shape parameters and which control the bias and tension of the curve. In this section, we demonstrate how to design Bezier brush strokes using these intuitive shape control parameters. Each Bezier brush stroke can be modeled by a one-parameter family of variable radius o set curves (approximated by cubic Bezier curves). Each bristle of a brush stroke is represented by a variable radius o set curve. Using the intuitive shape control parameters for the o set curves, one can easily generate a family of bristles which may have dramatic shape changes from the base curve. There are two previous methods of brush stroke modeling [4, 19] which are closely related to our method. Chua [4] modeled each Bezier brush stroke with two boundary cubic Bezier curves and generated each bristle as a linear combination of the two boundary curves. Pham [19] modeled each B-spline brush stroke with the variable radius o set B-spline curves for a uniform B-spline base curve. Pham [19] generates the knot points for each bristle by computing variable radius o set points for the knot points on the base curve. Then, each B-spline bristle is generated by interpolating the o set knot points thus generated. In a sense, the basic idea of Pham [19] is similar to the special case of our method in which one uses only the two o set radius parameters r0 and r3 while keeping the other parameters xed to the default values. Pham [19] would require a large number of knot points on the B-spline base curve to represent exible brush stokes (such as those having sharp turns and/or wavy shapes, etc). When we restrict our method so that it controls only the four o set radius parameters r0 ; r3 ; r00 ; r30 or only one of the bias and tension parameters and , the method generates cubic Bezier brush strokes that form a proper subclass of those generated by the method of Chua [4]. This point may become clear when we consider the following equations for the four control points of an o set cubic 15

Bezier curve: (p0 )r = Cr (0) = Cr (0) = p0 + r0  N0 ; (p3 )r = Cr (1) = Cr (1) = p3 + r3  N3 ; (p1 )r = (p0 )r + (1 + )  (1 + )  [(1 + r0 0 )  (p1 ? p0 ) + 13 r00  N0 ]; (p2 )r = (p3 )r + (1 ? )  (1 + )  [(1 + r3 3 )  (p2 ? p3 ) ? 13 r30  N3 ]: In the above equations, the four control points are linear combinations of the four parameters r0 ; r3 ; r00 ; r30 . By changing these four parameters linearly, one can generate a family of control polygons (for the o set cubic Bezir curves) which are linear combinations of the two boundary control polygons (for the two boundary o set cubic Bezier curves). Thus, the designed Bezier brush strokes are among those which can be generated by Chua [4]. A similar argument also holds for the case in which one linearly changes only one of the bias and tension parameters and with all the other ve parameters xed to the default values. The reverse is not true in general. That is, given two boundary cubic Bezier curves C1 and C2 , it is not possible to construct a cubic Bezier base curve C0 which generates the two boundary curves C1 and C2 as variable radius o set curves of C0 (by controlling only the four o set radius parameters r0 ; r3 ; r00 ; r30 or only one of the bias and tension parameters and ). To construct such a base curve, one has to control all the six shape control parameters r0 ; r3 ; r00 ; r30 ; , and simultaneously. Thus, each of the above three restricted cases generates cubic Bezier brush strokes which form a proper subclass of those generated by Chua [4]. Though they generate only proper subclasses, these three restricted cases cover most of the important subclasses of Bezier brush stroke shapes which are simple and useful in practice. Each subclass is closely related with the intuitive geometric meaning(s) of the associated shape control parameter(s). When we want to model more general Bezier brush stroke shapes, we have to use more shape control parameters than the parameter(s) for each of the above subclasses. For example, using the ve parameters r0 ; r3 ; r00 ; r30 , and , one can simultaneously control the o set radius and the bias of a cubic Bezier brush stroke. When each of these ve parameters is interpolated linearly (while the parameter is xed), the bristles are generated as quadratic interpolations of the two cubic Bezier boundary curves. Further, when each of the six shape control parameters is interpolated linearly, the bristles are generated as cubic interpolations of the two boundary curves. Thus, using simple linear interpolations of the associated shape control parameters, one can easily generate cubic Bezier brush strokes which have their bristles as non-linear interpolations of the two boundary curves. This non-linear interpolability of each bristle in our method is an improvement over the limited linear interpolability of each bristle in the method of Chua [4]. The bristles generated by interpolating intuitive shape control parameters have more natural intuitive geometric meanings than the bristles generated by the control polygons which are simple linear interpolations of the two boundary curve control polygons. In Figure 4, three examples are given to compare our method with Chua [4]. Each example has the same cubic Bezier boundary curves, however, the bristles in the left brush stroke are generated (by Chua [4]) as linear interpolations, whereas the bristles in the right brush stroke are generated (by our method) as cubic non-linear interpolations (which are obtained by linearly interpolating each of the six shape control parameters). The Bezier brush strokes in the right column have more natural and exible shapes which look like surfaces in the 3D space. In modeling a Bezier brush stroke using variable radius o setting, the most important geometric factor to determine the overall brush stroke shape is the base curve. Thus, by changing the base curve, one can easily change the overall shape of a Bezier brush stroke. In Figure 5, two examples 16

Chua’s Method

Our Method

Figure 4: Comparisons of Two Methods.

17

change of base curve

the corresponding change of brush stroke shape

change of base curve

the corresponding change of brush stroke shape

Figure 5: Change of Brush Stroke Shape to the Change of Base Curve.

18

t=0

t=1

t=0

t=1

Figure 6: Two Examples of Animation Sequences.

19

are shown to illustrate the shape changes of Bezier brush strokes corresponding to the shape changes of their respective base curves. In the examples, each bristle has the same shape control parameters during the whole course of shape changes. As one could easily notice in the examples, when the base curve changes its shape into a completely di erent one, the brush strokes at the later part of the change sequence come to have bad shapes. This is due to the fact that the shape control parameters are kept to xed values in the examples. The parameters have intuitive geometric meanings for the brush strokes at the start of the change sequence, however, they do not make much sense at the end of the sequence, thus they generate brush strokes with bad shapes. To make the shape transitions between two brush strokes look more natural and intuitive, we have to interpolate the shape control parameters for each bristle as well as the base curve shape. Figure 6 shows two examples, in each of which two key frames of cubic Bezier brush strokes are interpolated by an animated sequence of cubic Bezier brush strokes. In the examples, not only the base curves but also the shape control parameters for each bristle are interpolated linearly. The intermediate shapes in the animated sequence give smooth transitions between the two key frames of brush strokes. To generate a natural animated motion of a brush stroke, one has to consider how to control the motion of a base curve in a exible way. This is because the base curve is the most important geometric factor to determine the overall shape of a brush stroke. Assume we are given a sequence of cubic Bezier base curves Ci (s)0 s with four control points (pi )0 ; (pi )1 ; (pi )2 ; (pi )3 , where 0  s  1, for i = 1; : : : ; n. For a cubic Bezier curve Ct (s), for 0  t  n, to interpolate this sequence, a simple method is to interpolate each sequence (p1 )j ; (p2 )j ; : : : ; (pn )j , for j = 0; 1; 2; 3, by a cardinal spline curve Dj (t), for 0  t  n. Let S (s; t) be the tensor product surface of the curves Ci 's and Dj 's, then the base curve Ct (s) at time t can be constructed as a t-parameter curve on the surface S (s; t). Note that the surface S (s; t) is embedded in the plane since the curves Ci 's and Dj 's are planar curves. To generate a natural looking coordinated motion of brush strokes such as falling leaves and swaying grasses in the wind, we may need a more exible method to manipulate the coordinated motion of base curves. Since the base curve itself is a cubic Bezier curve, we could e ectively use the shape control parameters (such as the bias and tension parameters) to control the motion of a base curve (also see [16]). By combining the two motion control schemes, i.e., one using interpolations of the base curve control points and the other using the shape control parameters, one could generate more exible motions of a base curve. Then, by using a hierarchical control of the base curve and the variable radius o set functions in terms of the associated geometric shape control parameters, the generation of exible motions of Bezier brush strokes becomes relatively easy. This structure is somewhat similar to the skeleton technique of Burtnyk and Wein [3] in which, as an animator controls simple stick gures (which form skeleton cores), the in-between frames are generated automatically by interpolating the key frame skeleton polygons with relative coordinates. When we consider a similar problem for the Bezier brush strokes generated by Chua [4], the shape control becomes more dicult since in this case two boundary curves should be controlled simultaneously. In a sense, our method is a procedural modeling with a hierarchy of modeling brush strokes, whereas Chua [4] is an explicit modeling with a at modeling structure. Procedural modeling has been proven to be a quite useful technique in modeling complex object shapes and generating animated motions of such objects by modeling the inherent hierarchical structures of the objects [10]. The basic idea of modeling brush strokes with variable radius o setting can be easily extended to the case of 3D (see [17]). In 3D, the base curves and the variable radius o set curves are given as 20

Figure 7: An Orchid Texture Mapped onto a China. space curves. Di erently from the planar curves in which there are only two normal directions at each curve point, the space curves may have many normal directions at each curve point. There is a normal plane of the space curve at each point. O setting a curve point C (t) by a distance r(t) may be considered as generating a circle of radius r(t) centered at C (t) in the normal plane. We may consider the xed point C (t) in the normal plane as a circle of radius 0 centered at the origin. This circle of radius 0 can be o setted by a variable radius o set function r(t; ) which depends on the angle  measured from the positive x-axis of the normal plane. We can approximate the variable radius o set curve with a cycle of Bezier curves which form a star-shaped closed contour. The sweeping of these closed contours forms a generalized cylindrical surface. Park [17] generates such a surface as a tensor product of cubic Bezier curves which approximate variable radius o set curves. Figure 7 shows a china modeled by such a surface. The orchid texture on the china is generated by the Bezier brush stokes designed using the method presented in this paper. Coquillart [6] presents a similar method in which the surface is constructed as a B-spline surface. The B-spline surface is given as a tensor product of B-spline curves which are approximations of variable radius o set curves. Coquillart [6] may be considered as a 3D extension of the 2D result of Pham [19]. Di erently from our method and Pham [19], it is dicult to extend the result of Chua [4] to the 3D case. When two boundary curves are given as cubic Bezier space curves, Chua [4] may generate a band-shaped surface (a piece of ruled surface), but may not generate any cylindrical surface and/or any 3D tubed volume bounded by such a cylindrical surface. 21

6 Conclusions We have described an algorithm to approximate the variable radius o set curves of cubic Bezier curves by similar cubic Bezier curves. Using various intuitive shape control parameters for the variable radius o set cubic Bezier curves, a variety of Bezier brush strokes are designed with a great

exibility. In our method, each bristle of a brush stroke may interpolate the two boundary curves non-linearly. This is an improvement of our method over the two previous methods [4, 19]. Even with simple linear interpolations of the six shape control parameters, the bristles are generated as cubic interpolations of the two boundary curves. As the shape control parameters are interpolated numerically, the associated geometric meanings of the bristles are also interpolated. Thus, the generated Bezier brush strokes have more natural and exible shapes. The interpolation scheme of shape control parameters can be applied to the time span as well as to the brush stroke width. Thus, the brush stroke shapes can be interpolated (through a given sequence of key-frame brush strokes) by interpolating the associated shape control parameters for the key-frame brush strokes. This makes the animated motion control of Bezier brush strokes relatively easy. The ease of such an animation control is partially due to the hierarchical structure of the brush stroke design, i.e., the base curve control and the shape control parameter control. Using the hierarchical modeling structure of our method, an extension to the 3D case can be done in a similar way to the 2D case (see [17]).

References [1] Abhyankar, S., and Bajaj, C., \Automatic Parameterization of Rational Curves and Surfaces III: Algebraic Plane Curves," Computer Aided Geometric Design , Vol. 5, pp. 309{321, 1988. [2] Ahn, J.-W., Kim., M.-S., and Lim, S.-B., \Approximate General Sweep Boundary of 2D Object," to appear in CVGIP: Graphical Models and Image Processing . [3] Burtnyk, N., and Wein, M., \Interactive Skeleton Techniques for Enhancing Motion Dynamics in Key Frame Animation," Communications of the ACM , Vol. 19, No. 10, pp. 564{569, 1976. [4] Chua, Y., \Bezier Brushstrokes," Computer Aided Design , Vol. 22, No. 9, pp. 550{555, 1990. [5] Coquillart, S., \Computing O sets of B-spline Curves," Computer Aided Design , Vol. 19, No. 6, pp. 305{309, 1987. [6] Coquillart, S., \A Control-Point-Based Sweeping Technique" IEEE Computer Graphics & Applications , Vol. 7, No. 11, pp. 36{45, 1987. [7] Elber, G., and Cohen, E., \Error Bounded Variable Distance O set Operator for Free Form Curves and Surfaces," Int'l J. of Computational Geometry & Applications , Vol. 1, No. 1, 67{78, 1991. [8] Farouki, R., and Ne , C., \Analytic Properties of Plane O set Curves," Computer Aided Geometric Design , Vol. 7, pp. 83{99, 1990. [9] Farouki, R., and Ne , C., \Algebraic Properties of Plane O set Curves," Computer Aided Geometric Design , Vol. 7, pp. 101{127, 1990. [10] Foley, J., van Dam, A., Feiner, S., Hughes, J., Computer Graphics: Principles and Practice , Addison-Wesley, 1990. 22

[11] Ghosh, P., and Mudur, S., \The Brush-Trajectory Approach to Figure Speci cation: Some Algebraic-Solutions," ACM Transactions on Graphics , Vol. 3, No. 2, pp. 110{134, 1984. [12] Ho mann, C., Geometric & Solid Modeling: An Introduction, Morgan Kaufmann, San Mateo, CA, 1989. [13] Ho mann, C., \Algebraic and Numerical Techniques for O sets and Blends," Computer Science Technical Report CSD-TR-895, Purdue University, 1989. [14] Hoschek, J., \Spline Approximation of O set Curves," Computer Aided Geometric Design , Vol. 5, pp. 33{40, 1988. [15] Klass, R., \An O set Spline Approximation for Plane Cubic Splines," Computer Aided Design , Vol. 15, Nol. 5, pp. 297{299, 1983. [16] Kochanek, D., and Bartels, R., \Interpolating Splines with Local Tension, Continuity, and Bias Control," Computer Graphics (SIGGRAPH '84), Vol. 18, Nol. 3, pp. 33{41, 1984. [17] Park, E.-J., \Flexible Object Shape Modeling with Variable Radius O setting," M.S. Thesis, Dept. of Computer Science, POSTECH, Feb., 1983. [18] Pham, B., \O set Approximation of Uniform B-Splines," Computer Aided Design , Vol. 20, No. 8, pp. 471{474, 1988. [19] Pham, B., \Expressive Brush Strokes," CVGIP: Graphical Models and Image Processing , Vol. 53, No. 1, pp. 1{6, 1991. [20] Rossignac, J. and Requicha, A., \O setting Operations in Solid Modeling," Computer Aided Geometric Design , Vol. 3, pp. 129{148, 1986. [21] Strassman, S., \Hairy Brushes," Computer Graphics , Vol. 20, No. 4, pp. 225{232, 1986. [22] Tiller, W., and Hanson, E., \O sets of Two-Dimensional Pro le," IEEE Computer Graphics & Applications , Sept., pp. 36{46, 1984.

23