Polynomial Decomposition and Its Applications

Similar documents
Knot Insertion and Reparametrization of Interval B-spline Curves

Trimming Local and Global Self-intersections in Offset Curves/Surfaces using Distance Maps

Intersecting a Freeform Surface with a General Swept Surface

Approximation of 3D-Parametric Functions by Bicubic B-spline Functions

Efficient Degree Elevation and Knot Insertion for B-spline Curves using Derivatives

Generalized Filleting and Blending Operations toward Functional and Decorative Applications

Metamorphosis of Planar Parametric Curves via Curvature Interpolation

Dgp _ lecture 2. Curves

CAGD PACKAGE FOR MATHEMATICA AND ITS USAGE IN THE TEACHING

Perspective silhouette of a general swept volume

Free-Form Shape Optimization using CAD Models

Polynomial/Rational Approximation of Minkowski Sum Boundary Curves 1

Need for Parametric Equations

Tatiana Surazhsky Applied Mathematics Department, The Technion Israel Institute of Technology, Haifa 32000, Israel.

Progressive Surface Modeling Based On 3D Motion Sketch

The Convex Hull of Rational Plane Curves

Constrained modification of the cubic trigonometric Bézier curve with two shape parameters

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Contouring 1- and 2-Manifolds in Arbitrary Dimensions

Rational Bezier Surface

Multipatched B-Spline Surfaces and Automatic Rough Cut Path Generation

Adaptive Tessellation for Trimmed NURBS Surface

Les Piegl Wayne Tiller. The NURBS Book. Second Edition with 334 Figures in 578 Parts. A) Springer

Concave hull of a set of freeform closed surfaces in R 3

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

ADVANCED IMAGE PROCESSING METHODS FOR ULTRASONIC NDE RESEARCH C. H. Chen, University of Massachusetts Dartmouth, N.

Note on Industrial Applications of Hu s Surface Extension Algorithm

COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg

The Minkowski Sum of Two Simple Surfaces Generated by Slope-Monotone Closed Curves

PS Geometric Modeling Homework Assignment Sheet I (Due 20-Oct-2017)

2) For any triangle edge not on the boundary, there is exactly one neighboring

Evaluating the knot vector to synthesize the cam motion using NURBS

Isogeometric Collocation Method

Introduction to the Mathematical Concepts of CATIA V5

Almost Curvature Continuous Fitting of B-Spline Surfaces

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques

Local Modification of Subdivision Surfaces Based on Curved Mesh

Computer Graphics Curves and Surfaces. Matthias Teschner

Computation Method for Evaluation of Surface Fine Structure by Highlight Lines

Reparametrization of Interval Curves on Rectangular Domain

Spline curves. in polar and Cartesian coordinates. Giulio Casciola and Serena Morigi. Department of Mathematics, University of Bologna, Italy

3D Modeling Parametric Curves & Surfaces

Bezier Curves. An Introduction. Detlef Reimers

A second order algorithm for orthogonal projection onto curves and surfaces

Isoparametric Curve of Quadratic F-Bézier Curve

COORDINATE MEASUREMENTS OF COMPLEX-SHAPE SURFACES

UNSTRUCTURED GRIDS ON NURBS SURFACES. The surface grid can be generated either in a parameter. surfaces. Generating grids in a parameter space is

1. Introduction. 2. Parametrization of General CCSSs. 3. One-Piece through Interpolation. 4. One-Piece through Boolean Operations

MA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

The Convex Hull of Freeform Surfaces

Model Fabrication G. Elber 22. [16] R. Riesenfeld. Applications of B-spline approximation to Geometric Problems of

BS-Patch: Constrained Bezier Parametric Patch

Development of Reverse Engineering System for Machine Engineering Using 3D Bit-map Data. Tatsuro Yashiki* and Tarou Takagi*

Computer Aided Engineering Applications

2D Spline Curves. CS 4620 Lecture 18

Curves and Surfaces 1

Geometric Modeling of Curves

Texture Mapping using Surface Flattening via Multi-Dimensional Scaling

Advanced Geometric Modeling CPSC789

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Technion - Computer Science Department - Technical Report CIS

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10

Visualization Architecture for User Interaction with Dynamic Data Spaces in Multiple Pipelines

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

A generalized conversion matrix between non-uniform B-spline and Bézier representations with applications in CAGD

Further Graphics. Bezier Curves and Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Evaluation of Loop Subdivision Surfaces

Multimaterial Geometric Design Theories and their Applications

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics

Kai Hormann, N. Sukumar. Generalized Barycentric Coordinates in Computer Graphics and Computational Mechanics

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

Advanced Graphics. Beziers, B-splines, and NURBS. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

Computergrafik. Matthias Zwicker. Herbst 2010

Keyword: Quadratic Bézier Curve, Bisection Algorithm, Biarc, Biarc Method, Hausdorff Distances, Tolerance Band.

AN HIERARCHICAL APPROACH TO HULL FORM DESIGN

The Free-form Surface Modelling System

Optimal Ruled Surface Fitting

Functions. Edexcel GCE. Core Mathematics C3

INTERSECTION OF CURVES FACTS, COMPUTATIONS, APPLICATIONS IN BLOWUP*

Technion - Computer Science Department - Technical Report CIS

Element Quality Metrics for Higher-Order Bernstein Bézier Elements

Geometric modeling 1

Normals of subdivision surfaces and their control polyhedra

The Journal of MacroTrends in Technology and Innovation

Gardener s spline curve

Free-form curve design by knot alteration

College Algebra Extra Credit Worksheet

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

Design considerations

B-spline Curves. Smoother than other curve forms

Intersecting a freeform surface with a general swept surface

An introduction to NURBS

Interpolation possibilities using rational B-spline curve

INF3320 Computer Graphics and Discrete Geometry

DOWNLOAD PDF BIG IDEAS MATH VERTICAL SHRINK OF A PARABOLA

G 2 Interpolation for Polar Surfaces

Interactive Graphics. Lecture 9: Introduction to Spline Curves. Interactive Graphics Lecture 9: Slide 1

Transcription:

Polynomial Decomposition and Its Applications Joon-Kyung Seong School of Computer Science and Engineering Seoul National University, Seoul 151-742, South Korea E-mail: swallow@3map.snu.ac.kr and Gershon Elber Department of Computer Science Technion Israel Institute of Technology, Haifa 32000, Israel E-mail: gershon@cs.technion.ac.il and Myung-Soo Kim 1 School of Computer Science and Engineering Seoul National University, Seoul 151-742, South Korea E-mail: mskim@cse.snu.ac.kr Version: March 6, 2003 We present a simple algorithm for decomposing a polynomial H(x) into two constituent polynomials H(x) = f(g(x)), if such exist. Reversing a composition of two polynomials is shown to be reducible to a set of non-linear equations with a simple structure. While, in general, the solution of non-linear equations is quite complicated, we show that in this system the solution can be computed exactly using symbolic recurrence relations. We demonstrate the effectiveness of this result using some illustrative examples and also discuss interesting applications in geometric modeling: Reparameterization as an insecure watermarking tool and verifying the identity of a curve in two different representations. Key Words: Polynomials; composition; decomposition; non-linear equations; exact solution; watermarking; curve matching. 1. INTRODUCTION The composition of two polynomials is a simple and common operation in geometric modeling and in general. Symbolic processing software packages, such as Maple [2] or Mathematica [8], do support this functionality as a built-in procedure. However, consider the reverse operation. Given a composed function H(x), we seek to find a decomposition, if any, to H(x) as H(x) = f(g(x)). In other words, we seek f(x) and g(x), if exist. Neither Maple nor Mathematica offers this reverse functionality. The fact that the symbolic manipulation programs provide no such capability is more surprising as function decomposition has great importance in general and in geometric modeling specifically. In fact, the composition operation has been considered to be a highly robust way to watermark spline models [5]. Hence, a clear implication of this paper is the denouncing of composition as a water-marking option. 1 Corresponding author

Another important need for reversing the composition operation can be found in the need to identify identical curves that are represented differently. Using NURBS curves, this difference in two curves can be the result of degree raising [1] or refinements [1], operations that are easily reversed, and composition, for which a reverse operation is presented herein. Consider a common boundary curve between two surfaces. This same boundary could be represented differently in the two surfaces, making it difficult to match the curves, for example, for tessellation purposes, preventing from black-holes along the seams. Having a way to derive a non-reducible, canonical, form for a curve would greatly ease this matching process. As already stated, two identical curves could be represented differently if they were refined (via knot insertion), degree raised, or composed. The composition, and unlike refinement and degree raising, can also affect the parameterization of the curve. The composition f(c(t)), where c(t) is a higher degree (non-linear) representation of t, (e.g., c(t) = t[(1 t) + t] n ), would result in a degree-raised f that preserves the speed of the curve. Any other function c(t) would result in a speed change as well, making the regular degree raising a special case. A curve that is artificially degree raised or refined could be degree reduced [6] and its redundant knots removed [4]. This work seeks a method for completely reducing the curve into a canonical form by reversing the composition process. Consider two non-linear polynomials f(x) and g(x). The resulting composition of (f g)(x) = f(g(x)) is a higher degree polynomial with many non-linear terms. In general, finding a solution to a set of non-linear equations is difficult. In our case, these equations are yet well structured, and we will employ this simple structure to achieve the goal of this paper. Moreover, its unique structure is exactly the same in projective space when f(x) is rational. The key observation of this work can be summarized as follows: In the composition of two polynomials f(x) and g(x), the lowest degree terms reveal the structure of f(x) and the highest degree terms expose the structure of g(x). The result of the composition has many high degree terms. However, and being closely related to convolution, many of these terms assume a simple form at the two s of this composition process. In other words, the terms with the highest and lowest degrees are the simplest. In Section 2, we further justify that no generality is lost by employing the following canonical forms of f(x) and g(x), for a general composition H(x) = f(g(x)), f(x) = x m + b m 1 x m 1 + + b 1 x + b 0, g(x) = x k + c k 1 x k 1 + + c 1 x. (1) By exploiting this canonical form, we could greatly simplify the composition formulation and its structure analysis. When the two functions in Equation (1) are composed, we up with a polynomial of degree km: H(x) = x km + a km 1 x km 1 + a 1 x + a 0 = f(g(x)) = (x k + c k 1 x k 1 + + c 1 x) m +b m 1 (x k + c k 1 x k 1 + + c 1 x) m 1 +b 1 (x k + c k 1 x k 1 + + c 1 x) +b 0. Examine the coefficients of the k terms of H(x) with the highest degrees. Each coefficient c k i is expressible as a function of a km i and c k,, c k i+1, for i = 1,, k 1, where c k = 1. Once the coefficients of g(x) are computed this way, the relationship between

a i s and b j s is linear. Each coefficient b j is again computed as an explicit function of a j, c 1,, c k 1, and b 0,, b j 1, for j = 0,, m 1. The rest of this paper is organized as follows. In Section 2, we justify the simplification assumption on the canonical structure of f(x) and g(x) as presented in Equation (1). Based on this structure, we present a symbolic algorithm to decompose a curve in Section 3. In Section 4, some examples are shown and two applications are discussed: Reparameterization as an insecure watermarking tool and checking the identity of a curve in two different representations. Finally, in Section 5, we conclude this paper. 2. A TEMPLATE SOLUTION In this section, we present an affine transformation that simplifies the procedure of decomposing a polynomial H(x) = f(g(x)) into two polynomials f(x) and g(x) if such exist. This is to justify the simplified structure of f(x) and g(x) that was mentioned in the introduction. Consider the affine transformation which is also a linear polynomial: l(x) = αx + β, for some constants α 0 and β. Then, its inverse transformation is another linear polynomial: l 1 (x) = α 1 (x β). Given a composite polynomial H(x) = f(g(x)), there are infinitely many different ways that H(x) may be decomposed into f and g using the above linear polynomials: where H(x) = f(g(x)) = ˆf(ĝ(x)), ˆf(x) = (f l 1 )(x), ĝ(x) = (l g)(x). If f(x) and g(x) are polynomials, then ˆf(x) = (f l 1 )(x) and ĝ(x) = (l g)(x) are also polynomials of the same degrees, respectively. Assume that g(x) is a polynomial of degree k: where c k 0. Using the linear polynomial, we get l(g(x)): g(x) = c k x k + c k 1 x k 1 + + c 1 x + c 0, ĝ(x) = x k + (c 1 k l(x) = c 1 k (x c 0), c k 1)x k 1 + + (c 1 c 1)x. Thus, without loss of generality, we may assume that c k = 1 and c 0 = 0. We will now assume that f(x) is a polynomial of degree m and that g(x) is given in the special form, with c k = 1 and c 0 = 0: f(x) = b m x m + b m 1 x m 1 + + b 1 x + b 0, g(x) = x k + c k 1 x k 1 + + c 1 x, k

for some b m 0. Their composition H(x) = f(g(x)) is a polynomial of degree km and it can be represented as follows: H(x) = a km x km + a km 1 x km 1 + a 1 x + a 0 = f(g(x)) = b m (x k + c k 1 x k 1 + + c 1 x) m +b m 1 (x k + c k 1 x k 1 + + c 1 x) m 1 +b 1 (x k + c k 1 x k 1 + + c 1 x) +b 0. Comparing the terms of degree km, we notice that a km = b m. Subdividing the above equation by setting a km = b m, we may assume that both H(x) and f(x) have 1 as the coefficients of their leading terms. In the following discussions of this paper, we assume that and also that H(x) = x km + a km 1 x km 1 + a 1 x + a 0, f(x) = x m + b m 1 x m 1 + + b 1 x + b 0, g(x) = x k + c k 1 x k 1 + + c 1 x f(g(x)) = (x k + c k 1 x k 1 + + c 1 x) m (2) +b m 1 (x k + c k 1 x k 1 + + c 1 x) m 1 +b 1 (x k + c k 1 x k 1 + + c 1 x) +b 0. 3. RECURRENCE FORMULAS This section presents recurrence formulas that can be used in computing the coefficients c k i and b j recursively. We first define the coefficients A[l, i], (l = 1,, m; i = 0,, kl l), as follows where c k = 1. Note that kl l (c k x k + c k 1 x k 1 + + c 1 x) l = A[l, i]x kl i, i=0 A[1, i] = c k i, for i = 0,, k 1; A[l, 0] = c l k = 1, for l = 1,, m; and A[m, i] = a km i, for i = 1,, k 1. Moreover, for each l = 2,, m, using the relation (x k + c k 1 x k 1 + + c 1 x) l = (x k + c k 1 x k 1 + + c 1 x) (x k + c k 1 x k 1 + + c 1 x) (l 1) k(l 1) (l 1) = (x k + c k 1 x k 1 + + c 1 x) A[l 1, i]x k(l 1) i, i=0

we can derive the following recurrence formula: A[l, i] = i c k i+j A[l 1, j], j=0 for i = 0,, k 1. By induction, we can easily show that A[l, i] is determined by the coefficients c k,, c k i. Using this recurrence formula, we can derive the following equation a km i = A[m, i] i = c k i+j A[m 1, j] j=0 i 1 = c k i A[m 1, 0] + A[m 1, i] + c k i+j A[m 1, j] j=1 = c k i + c k i A[m 2, 0] + A[m 2, i] i 1 i 1 + c k i+j A[m 2, j] + c k i+j A[m 1, j] j=1 = 2c k i + A[m 2, i] + = (m 1)c k i + A[1, i] + = mc k i + m 1 l=1 j=1 m 1 j=1 l=m 2 j=1 m 1 l=1 j=1 i 1 c k i+j A[l, j] i 1 c k i+j A[l, j] i 1 c k i+j A[l, j] Consequently, we have c k i = a km i m 1 i 1 l=1 j=1 c k i+j A[l, j], (3) m for i = 1, 2,, k 1. Note that each term A[l, j] was determined by c k,, c k j. Thus, c k i is completely determined by a km i and c k,, c k i+1. Once the values of c k 1,, c 1 are determined using the above recurrence relation, each coefficient b i can be represented as a rational expression of c k 1,, c 1 and b 0,, b i 1. For this purpose, we define the coefficients B[l, i], (l = 1,, m; i = l,, kl), as follows kl (x k + c k 1 x k 1 + + c 1 x) l = B[l, i]x i. Note that kl i=l i=l B[1, i] = c i, for i = 1,, k 1; and B[l, l] = c l 1, for l = 1,, m. Each coefficient B[l, i] can be computed using the following equation: B[l, i]x i = (x k + c k 1 x k 1 + + c 1 x) l

= (x k + c k 1 x k 1 + + c 1 x) (x k + c k 1 x k 1 + + c 1 x) (l 1) k(l 1) = (x k + c k 1 x k 1 + + c 1 x) B[l 1, i]x i. i=l 1 A recurrence relation for B[l, i] can be formulated as follows B[l, i] = k c j B[l 1, i j]. Since B[l 1, i j] = 0 for i j < l 1 and i j > k(l 1), we have B[l, i] = j=1 min(k,i l+1) j=max(1,i k(l 1)) c j B[l 1, i j]. Once all the coefficients B[l, i] are computed, we can represent the value of b l, (l = 1,, m 1), as a rational expression of a l, b 0,, b l 1, and B[1, l],, B[l 1, l], where we assume B[p, l] = 0 if l < p or pk < l. From Equation (2), we have l 1 a l = b l c l 1 + b p B[p, l]. p=1 Thus, in case c 1 0, b l has the following rational representation: Now, we consider the general case where that is c s 1 = = c 1 = 0. Then we have and b l = a l l 1 p=1 b pb[p, l]. c l 1 g(x) = x k + c k 1 x k 1 + + c s x s ; l 1 a sl = b l c l s + b p B[p, sl], p=1 b l = a sl l 1 p=1 b pb[p, sl]. (4) The following two algorithms summarize the procedure for computing the coefficients of f(x) and g(x). For each divisor k of n, (1 < k < n), we set m = n/k and call Algorithms 1 and 2 to construct two component polynomials g(x) and f(x), and test if H(x) = f(g(x)) holds. From the nested loops in their pseudo-codes, we can notice that Algorithm 1 is always computed in O(kn) time, whereas Algorithm 2 is computed in O(n 2 ) time. This time complexity may look relatively high. However, consider that n is the degree of the polynomial H(x), which is usually smaller than 30 for all practical purposes. For a given n < 30, Algorithms 1 and 2 are called at most 5 times. Thus the whole computation can be done in real-time. Because of numerical errors involved, the coefficients of H(x) and f(g(x)) may not be exactly the same. In our implementation, we consider two coefficients the same if their c l s

difference is less than 10 9. The arithmetic operations are implemented in a special way so that the same coefficients are always guaranteed to fall into this small gap. Algorithm 1 Input: The composite function H(x) of degree n; Output: The function g(x) of degree k which satisfies that f(g(x)) = H(x); DecompositionG( H(x) ) begin for i := 1 to k 1 do A[m, i] a km i ; for l := 1 to m do A[l, 0] 1; for i := 1 to k ( 1 do c k i 1 m a km i m 1 ) i 1 l=1 j=1 c k i+j A[l, j] ; /% Equation (3) %/ for l := m 1 downto 1 do A[l, i] A[l + 1, i] i 1 j=0 c k i+j A[l, j]; c 0 = 0; Construct a polynomial function g(x) using c i, i = 0, 1,, k; return g(x); Algorithm 2 Input: The composite function H(x) of degree n; The function g(x) of degree k; Output: DecompositionH( H(x), g(x) ) begin /% Assume g(x) = x k + c k 1 x k 1 + + c s x s %/ for i := 1 to k 1 do B[1, i] c i ; for l := 2 to m do for i := 1 to kl do The function f(x) of degree m which satisfies that f(g(x)) = H(x); B[l, i] min(k,i l+1) j=max(1,i k(l 1)) c jb[l 1, i j]; for l := 1 to m( 1 do ) ; /% Equation (4) %/ b l 1 a c l sl l 1 p=1 b pb[p, sl] s b 0 a 0 ; Construct a polynomial function f(x) using b l, l = 0, 1,, m 1; return f(x);

4. APPLICATIONS 4.1. Reparameterization as an Insecure Watermarking Digital watermarking is a relatively new subject of research in computer graphics. In particular, watermarking three-dimensional data has been mainly focused on polygonal meshes. Watermarking freeform spline geometry also raised much research interest; however, there has been little success so far. The same freeform geometry can be represented in different forms when we deal with Bézier and B-spline curves and surfaces. For example, given a B-spline curve C(t), one can: Degree raise the curve [1]; or Refine the curve via knot insertion [1]; or Reparametrize the curve via composition, while preserving the geometric shape of the curve. Not surprisingly, all these three techniques were once proposed as possible ways of watermarking freeform geometry represented in B-spline [5]. Unfortunately, the first two of these techniques are easy to break. A degree raised curves could easily be degree reduced [6]. A refined curve could be restored via a knot removal procedure [4]. Furthermore, in both degree raising and knot insertion, one may raise the degree of the freeform shape even further and/or apply additional knot insertions, thus attacking the watermark of the original model. Ohbuchi et al. [5] mentioned these deficiencies in the watermarking methods based on knot insertion and degree raising; and they proposed Reparameterization via composition as a possible solution to more robust watermarking alternative. In this paper, we have shown that a polynomial curve can easily be decomposed into its two composing components if such exist. Hence, a clear and immediate implication of our result is the denouncing of composition as a watermarking option. 4.2. Curve Matching via a Reduction The modern geometric CAD systems are capable of modeling highly complex scenes, with hundreds if not thousands of surfaces. Different surfaces are frequently stitched together along shared seams. In many cases, the curves along stitched surfaces share neither the same degree nor the same knot sequence. This incompatibility could produce some black holes while the two adjacent surfaces are approximated into polygons (see Figure 1(c) and 2(c)). More seriously, there could be mismatches in textures that stretch across the shared boundary curve (see Figure 1(a) and 2(a)). Given two curves C 1 (r) and C 2 (t) from two surfaces along a shared boundary, we consider the problem of checking whether these two curves are identical and if so find a canonical representation for the two curves. Such a canonical representation is very useful in matching the tessellation on both sides of the shared seam (see Figure 1(d) and 2(d)). Moreover, it may provide a solution to reparametrizing one of the surfaces so that the two surface faces can be texture-mapped seamlessly across their common edge (see Figure 1(b) and 2(b)). We may apply knot removal and degree reduction to both C 1 (r) and C 2 (t) so that one can ensure that both curves were not artificially degree raised and that every knot indeed is a source for a finite discontinuity. Then, we apply a decomposition test on both curves as proposed in this paper. The combination of degree reduction, knot removal, and decomposition provides a complete set of tests that is capable of reducing curves to their canonical form and open the way for a simple and efficient comparison between differently represented curves.

(a) (b) (c) (d) FIG. 1 (a), (c) The same boundary curve has different parameterization; and (b), (d) its canonical form is derived via decomposition.

(a) (b) (c) (d) FIG. 2 (a), (c) The same boundary curve can be parameterized differently. Two differently parameterized boundary curves are matched into one canonical form.

(a) (b) FIG. 3 (a) Differently parameterized boundary curve (around the neck of a duck model) results in a skewed texture map; (b) but the curve matched using a canonical form unifies the two surface patches. 5. CONCLUSION In this paper, we have presented an algorithm for decomposing a polynomial H(x) into two component polynomials f(x) and g(x). Using this result, we can easily test if a given polynomial/rational spline curve is a result of polynomial reparameterization. The original spline curve and the reparameterization function itself can also be constructed. We have also shown that the canonical representation of a curve greatly simplifies the procedures of: (i) detecting a watermark embedded in a curve, and (ii) checking the identity of a curve represented in different ways. The simple solution suggested in this paper may find many other interesting applications in freeform curve modeling. An important problem for future work is that of reversing the composition of two polynomials in two variables (i.e. surface reparametrization). ACKNOWLEDGMENTS All the algorithms and figures presented in this paper were implemented and generated using the IRIT solid modeling system [3] developed at the Technion, Israel. This work was supported in part by the Korean Ministry of Information and Communication (MIC) under the Program of IT Research Center on CGVR, in part by the Korean Ministry of Science and Technology (MOST) under the National Research Laboratory Project and in part by the Israeli Ministry of Science Grant No. 01 01 01509. REFERENCES [1] Cohen, E., Riesenfeld, R.F., and Elber, G. Geometric Modeling with Splines: An Introduction. A.K. Peters, Natick Massachusetts, 2001.

[2] Heal, K.M., Hansen, M., and Richard, K. Maple V Learning Guide (for Release 5), Springer-Verlag, 1997. [3] IRIT 8.0 User s Manual, October 2000, Technion. http://www.cs.technion.ac.il/ irit. [4] Lyche, T., and Morken, V. Knot removal for parametric B-spline curves and surfaces Computer Aided Geometric Design, Vol. 4, No. 3, pp. 217 230, 1987. [5] Ohbuchi, R., Masuda, H., and Aono, M. A Shape-preserving Data Embedding Algorithm for NURBS Curves and Surfaces. Proc. of Computer Graphics International (CGI 99), Canada, June 1999. [6] Piegl, L., and Tiller, W. Algorithm for degree reduction of B-spline curves. Computer- Aided Design, Vol. 27, No. 2, pp. 101 110, 1995. [7] Spiegel, M. Mathematical Handbook of Formulas and Tables. Schaum s Outline Series in Mathematics, McGraw-Hill, pp 4, 1968. [8] Wolfram, S. The Mathematica Book, 3rd ed. Wolfram Media/Cambridge University Press, 1996.