finding intersection curves using subdividable linear...

48
FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR EFFICIENT FUNCTION ENCLOSURES By MINHO KIM A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE UNIVERSITY OF FLORIDA 2004

Upload: others

Post on 19-Oct-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

FINDING INTERSECTION CURVESUSING

SUBDIVIDABLE LINEAR EFFICIENT FUNCTION ENCLOSURES

By

MINHO KIM

A THESIS PRESENTED TO THE GRADUATE SCHOOLOF THE UNIVERSITY OF FLORIDA IN PARTIAL FULFILLMENT

OF THE REQUIREMENTS FOR THE DEGREE OFMASTER OF SCIENCE

UNIVERSITY OF FLORIDA

2004

Page 2: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

Copyright 2004

by

Minho Kim

Page 3: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

To my parentsand

my sister

Page 4: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

ACKNOWLEDGMENTS

I would like to thank my advisor, Dr. Jorg Peters. He inspired me, guided

me through all the research, and gave me invaluable advice, suggestions, and

comments. This thesis never could have been done without his help. I also would

like to show my gratitude to Dr. Anand Rangarajan and Dr. Paul A. Fishwick for

serving on my committee.

But most of all, members of my family deserve my deepest gratitude. They

have always been on my side and cheered me up through my entire life.

iv

Page 5: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

TABLE OF CONTENTSpage

ACKNOWLEDGMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii

ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

CHAPTER

1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 PREVIOUS WORK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Analytic Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3 Lattice Evaluation Methods . . . . . . . . . . . . . . . . . . . . . 42.4 Marching Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Subdivision Methods . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 BACKGROUND KNOWLEDGE . . . . . . . . . . . . . . . . . . . . . . 7

3.1 SLEFE (Subdividable Linear Efficient Function Enclosure) . . . . 73.1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.1.2 Theoretical Basis . . . . . . . . . . . . . . . . . . . . . . . 73.1.3 Width of the SLEFE . . . . . . . . . . . . . . . . . . . . . 113.1.4 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.5 Tensoring SLEFEs . . . . . . . . . . . . . . . . . . . . . . . 153.1.6 Mid-structure . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.7 Extension to Curves and Surfaces . . . . . . . . . . . . . . 163.1.8 Inverse of Mid-structure . . . . . . . . . . . . . . . . . . . . 17

4 PROCEDURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1 Constructing Mid-structures of Tensor-product Bezier Surfaces . . 184.2 Finding the Intersection of Mid-structures . . . . . . . . . . . . . 19

4.2.1 Finding the Intersection of Two Triangles . . . . . . . . . . 194.2.2 Finding the Topology of Piecewise Linear Intersection Curves 224.2.3 Inverting Pircewise Linear Curves to B-Spline Curves . . . 25

5 ANALYSIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1 Evaluating an Exact Intersection . . . . . . . . . . . . . . . . . . 26

v

Page 6: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

5.2 Measuring Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . 27

6 CONCLUSION AND FUTURE WORK . . . . . . . . . . . . . . . . . . 34

REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

BIOGRAPHICAL SKETCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

vi

Page 7: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

LIST OF FIGURESFigure page

3–1 Hat function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3–2 SLEFEs of a1 with its control points. . . . . . . . . . . . . . . . . . . 14

3–3 Example of mid-structure. . . . . . . . . . . . . . . . . . . . . . . . . 16

3–4 Bounding boxes of SLEFEs at break points. . . . . . . . . . . . . . . 17

4–1 Intersection of triangle and line segment. . . . . . . . . . . . . . . . . 19

4–2 Making triangle edges exclusive of each other. . . . . . . . . . . . . . 22

4–3 Degenerate cases of triangle-triangle intersection. . . . . . . . . . . . 23

4–4 Constructing the topology of intersection curves. . . . . . . . . . . . . 24

5–1 Finding simple boundaries for a line segment. . . . . . . . . . . . . . 28

5–2 Tolerance according to the intersection angle. . . . . . . . . . . . . . . 28

5–3 Tolerance with respect to the intersection angle. . . . . . . . . . . . . 30

5–4 Example 1. Two surfaces intersecting each other. . . . . . . . . . . . 30

5–5 Exact intersection curve. . . . . . . . . . . . . . . . . . . . . . . . . . 31

5–6 Mid-structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5–7 Intersection of two mid-structures. . . . . . . . . . . . . . . . . . . . . 32

5–8 The B-Spline curve inverted. . . . . . . . . . . . . . . . . . . . . . . . 32

5–9 Tolerance of the intersection curve. . . . . . . . . . . . . . . . . . . . 33

5–10 Example 2. Two surfaces with the tolerance of its intersection curve. 33

vii

Page 8: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

Abstract of Thesis Presented to the Graduate Schoolof the University of Florida in Partial Fulfillment of the

Requirements for the Degree of Master of Science

FINDING INTERSECTION CURVESUSING

SUBDIVIDABLE LINEAR EFFICIENT FUNCTION ENCLOSURES

By

Minho Kim

August 2004

Chair: Jorg PetersMajor Department: Computer and Information Science and Engineering

Finding the intersection of two surfaces, usually a collection of curves, is

an important challenge in modeling geometry. This thesis presents a method

to find parametric (b-spline) intersection curves which approximate the actual

intersection curves of two Bezier surfaces. We first approximate the original

surfaces using SLEFEs (Subdividable Linear Efficient Function Enclosures) and

their mid-structures. The piecewise linear curves, which are the intersections of two

mid-structures, are inverted to the b-spline curves which approximate the exact

intersection curves. Our method is fast, has known error bounds, and generates

b-spline curves, which are very useful for many applications. Moreover, our method

can be refined with the guarantee of decreasing error bound.

viii

Page 9: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 1INTRODUCTION

Finding the intersection of two surfaces, Surface/Surface Intersection (SSI),

plays an important role in the following areas:

• CAD (Computer-Aided Design): trimming curves [1, 2], boundary representa-

tion [1, 3], CSG (Constructing Solid Geometry) [3]

• manufacturing: tool path generation [1, 4]

• computer animation: interference detection [4]

• feature recognition [4, 5]

• computer graphics: hidden surface removal [4], visibility computations [4]

• engineering: grid generation [2, 4]

• scientific visualization [4, 5].

Except for a few special cases, it is difficult to find the exact intersection. The

difficulty arises from several aspects. First, even for surfaces of low polynomial

degree, the intersection curve is typically of high degree. For example, the intersec-

tion curve of two tensor-product bicubic Bezier surfaces can be as high as 324 [4].

Moreover, some geometric complexities, which are, constrictions (near singular or

singular cases) [5], small loops, singularities, and multiple branches at the singulari-

ties make it more difficult [4]. In addition, the imprecision introduced by numerical

errors in finite precision computations makes it more complicated [5].

This thesis presents a method for approximating the intersection of two Bezier

surfaces with tolerance guarantees. Even though the intersection of two surfaces

usually consists of isolated points, a set of curves, a set of overlapping surfaces,

or any combination of these cases [3, 6, 7, 8], we can focus on curves since the

1

Page 10: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

2

approximation excludes singular cases. Our method excels on speed and produces a

useful output curve. Moreover, it is refinable with decreasing tolerance guaranteed.

Page 11: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 2PREVIOUS WORK

2.1 Overview

Due to the strong demand mentioned earlier, there is a rich body of literature

investigating SSI. According to the approaches they take, the methods can be

categorized [5, 9, 10, 11] into four classes: analytic methods [1, 5, 12], lattice

evaluation methods [8], marching methods [10, 13], and subdivision methods

[2, 3, 6, 9, 7, 14, 15]. Some methods use the combinations of those methods. They

are called hybrid methods [4].

2.2 Analytic Methods

Analytic methods derive the equation which describes the intersection of two

surfaces and tries to find the solution of the equation [5]. But the possible high

degree of the equation makes this method limited to several kinds of the surfaces.

In Gradine [1] and Gradine and Klein IV[12], Grandine sees the SSI problem

as a special case of the more general contouring problem. Rather than the usual

system of n equations in n variables, the contouring problem has fewer, say k,

equations than variables, and has (n − k)-dimensional manifold as its solutions

in the nonsingular cases. The SSI problem is the case of k = n − 1, and thus has

curves as the solutions [1, 12]. Before solving the nonlinear system, he first tries

to find the topology of the intersection curves. Even though this process requires

the class of the surfaces to be restricted, it reduces the initial value problem

over an unknown parameter interval to a boundary value problem over a fixed,

specified interval, thus eliminating many problems arising before. To solve the

nonlinear system, he applies spline collocation and gets the solution parameterized

by arclength [1, 12].

3

Page 12: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

4

Patrikalakis [5] first transforms the problem of finding the intersection of two

surfaces to the intersection of a surface and a plane and makes it possible to use

the subdivision method. He tries to find the significant points (border points,

turning points, and singular points) using adaptive subdivision and minimization.

But this method is not general because it depends on the availability of a Bernstein

polynomial representation of the intersection curve, which thus restricts the class of

the surfaces. For more general cases, he introduces the oriented distance function

and tries to find the zero set of it.

2.3 Lattice Evaluation Methods

Lattice evaluation methods are based on the idea that if we fix one of the vari-

ables of the tensor-product surface, the surface becomes a curve. In other words,

we approximate one of the surfaces by a set of curves and calculate the intersection

of the surface and each of the curves, which thus reduces the dimensionality of

surface intersections [5]. This method has a disadvantage in that we may miss some

important features depending on the resolution of the grid.

This method is not only used as an independent method to find the intersec-

tion of the surfaces [8], but it is used as a part of other methods. For example,

Patrikalakis uses this method to find the initial approximation for the collinear

normal points, which then are used to find the critical points [5]. In addition, many

of the marching methods use this method to find the starting point [5].

2.4 Marching Methods

Marching methods, also called curve tracing schemes [12], curve following

schemes [12], or continuation methods [10, 14], can be used for the more general

cases. The basic idea behind it is to trace the points on the intersection curve from

the starting point, which is already known on the intersection curve. But depending

on the step size, this method also may miss some important features and jump to

other segments of the curve when two curves are very close to each other. To find

Page 13: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

5

the starting points for every branch is also a challenge and many of the methods

rely on the lattice evaluation or subdivision methods to find them [5].

Abdel-Malek and Yeh first try to find the starting points using the Moore-

Penrose pseudo-inverse of the subJacobian. To trace the points on the curve, they

use the Predictor-Corrector method. In addition, the row-rank deficiency of the

Jacobian is used to detect the singularities along the curve [10].

2.5 Subdivision Methods

Subdivision methods can be used for most general cases. They adopt the

famous divide-and-conquer scheme to find the intersection. Even though they do

not require the starting points, which is an important advantage, they also may

miss some important features and the topology of the intersection curves [5]. This

is also the case of our method because we approximate original surfaces.

Lanquetin et al. [9] present the method to find the intersection curves of two

subdivision surfaces. At the initial subdivision step, they find the piecewise linear

intersection curve using the bruteforce triangle-triangle intersection. But after the

initial subdivision step, they use one of two strategies to reduce the number of

triangles tested for the intersection. In the neighborhood algorithm, they consider

only the 1-neighborhood of the previous intersecting curves. The other algorithm

uses the bipartite graph to reduce the number of triangles involved [9].

Gleicher and Kass also use the bounding volumes, specifically AABB (Axis-

Aligned Bounding Box), for the domain and interval arithmetic [15]. This method

is improved by Henrique by using affine arithmetic instead of the interval arith-

metic [14].

Huber uses the bounding volumes to find the intersection. If two bounding vol-

umes are intersecting, one of the domains is split into two domains and calculated

again until the given tolerance is satisfied. He uses interval arithmetic to compute

the bounding volumes [3, 6, 7].

Page 14: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

6

Jean and Hamann triangulate the surfaces using the adaptive triangulation

method and find the intersection curves of two triangle meshes, which are the linear

spline curves. They use the k-d tree structure to build the space-partitioning tree,

thus reducing the number of triangles involved. They also introduce an additional

refinement step [2].

Page 15: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 3BACKGROUND KNOWLEDGE

3.1 SLEFE (Subdividable Linear Efficient Function Enclosure)

3.1.1 Overview

The Subdividable Linear Efficient Function Enclosure (SLEFE) is a technique

which constructs piecewise linear enclosure for a nonlinear function [16, 17, 18, 19].

Instead of constructing the enclosures for the function directly, which is slow,

SLEFE tries to construct the enclosure of its basis functions, which can be done

off-line fast. Because enclosures of basis functions do not change once the basis

functions and the number of linear pieces to enclose them are determined, they can

be tabulated, thus making it fast to construct SLEFEs. Even though this method

might be less optimal compared to constructing the enclosures of the given function

directly, SLEFEs are very good L∞ approximands, and, moreover, they can be

refined with the guarantee of decreasing tolerance.

3.1.2 Theoretical Basis

The SLEFE is based on two general lemmas.

Let x = bTx be the function of which we are trying to find the SLEFEs where

b is the basis function vector of the vector space B to which x belongs.

Lemma 1 (change of basis) Given two finite-dimensional vector spaces of

functions, B 6= H, s := dimB − dim(B ∩ H),(bi)i=1,···,dimB a basis of B, (ai)i=1,···,s

functions in B, and linear maps

L : B → H, ∆ : B → Rs,

7

Page 16: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

8

such that (i)(∆jai)i,j is the identity in Rs×s and (ii)ker∆ = ker(E −L) (where E is

the embedding identity) then for any x := b · x ∈ B,

(b − Lb) · x = (a − La) · (∆x). (3.1)

Let

d = dimB

a =

aT1 b

...

aTs b

=

a1,1 . . . a1,d

.... . .

...

as,1 . . . as,d

b

= Mab.

In addition, let matrices ML and M∆ denote the linear maps L and ∆ each. In

other words,

L(x) = L(bTx)

= bTMLx

and

∆(x) = ∆(bTx)

= M∆x.

Then, we can transform (3.1) using matrices as follows,:

(b − Lb) · x = (a − La) · (∆x)

bT x − L(bTx) = (Mab)T (M∆x) − L((Mab)TM∆x)

bTx − bT MLx = (Mab)T (M∆x) − L(bT MTaM∆x)

bT x − bT MLx) = bT MTa(M∆x) − bTMLMT

aM∆x

bT (x − MLx) = bT (MTaM∆x − MLM

TaM∆x). (3.2)

Page 17: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

9

Now, from (i) we know M∆MTa

= I, therefore

∆x = M∆x = (M∆MTa)M∆x

= M∆(MTaM∆)x

thus

M∆x − M∆(MTaM∆)x = M∆(I − MT

aM∆)x = 0

which means (I − MTaM∆)x is a kernel of M∆. (ii) means that the kernel of M∆

and E− ML are the same. Therefore (E − ML)(I − MTaM∆)x = 0. Now we get

(E − ML)(I − MTaM∆)x = 0

(E− ML)x = (E − ML)MTaM∆x

(E− ML)x = (MTa− MLMT

a)(M∆x).

x − MLx = MTaM∆x − MLM

TaM∆x.

By multiplying bT on both sides, we get (3.2).

Note this lemma from another view.

Given two finite-dimensional vector space B and H, let L be an orthogonal

projection map from B onto its subspace B ∩ H. In other words, L(x) is the

orthogonally projected image of x on B ∩ H where x is a function in B. Then we

can easily change the basis functions of L(x) to those of H because L(x) ∈ H. Now

x − L(x) is left. Because L is an orthogonal projection map, x − L(x) is orthogonal

to the subspace B ∩ H and lies in another subspace B − H of which dimension is

s = dim(B − H) = dimB − dim(B ∩ H). Therefore we can express x − L(x) using

only s number of vectors, say a = [a1 a2 · · · as]T , which are linearly independent of

each other in B−H. We can now imagine a vector space A of which basis functions

are a. Let ∆ be the linear map from B to A. Then all the functions (ai)i=1,··· ,s

in B should be mapped to the unit vectors in A. The condition “(i)(∆jai)i,j is

Page 18: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

10

the identity in Rs×s” is equivalent to this one. But when express L − L(x) using

a, we should remove all the components lying in B ∩ H, thus a − L(a). Because

the functions in the vector space A are orthogonal to the subspace B ∩ H, all the

functions lying in B ∩ H will be mapped to zero in A by the linear map ∆. These

functions also will be mapped to zero by the linear map E − L because for those

lying in B ∩ H, L(x) = x, that is the projected image is the same with itself. This

condition is equivalent to “(ii)ker∆ = ker(E − L) (where E is the embedding

identity).”.

Lemma 2 (bounds) If, with the definitions of Lemma 1, additionally the maps

x → x : Bs → Hs and x → x : Bs → H satisfy a − La ≤ a − La ≤ a − La

componentwise on every point of a domain U , and (∆x)+(i) := max{0, ∆x(i)}, and

(∆x)−(i) := min{0, ∆x(i)} then

x := Lx + a − La · (∆x)+ + a − La · (∆x)−,

x := Lx + a − La · (∆x)− + a − La · (∆x)+

sandwiches x on U : x ≤ x ≤ x.

From Lemma 1, we now get

x = L(x) + (a − La) · (∆x).

We can easily change the basis of L(x) to the basis of H because L(x) ∈ H, but we

cannot change the basis of (a−La) · (∆x), which is a− La. Instead, we can enclose

it with the functions in H, which are a − La for the lower bound and a − La for

the upper bound. To enclose the function x, we have to choose the basis function,

depending on its coefficients. For example, to find the lower bound of the function

x, we have to choose the lower bound of the basis for the positive coefficients, but

we have to choose the upper bound of the basis for the negative ones.

Page 19: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

11

Then all the basis functions of x and x are h, and therefore we can enclose the

function x with the basis functions of H. In other words,

x = hTu

x = hT l.

Here, we can notice that a − La and a − La do not change according to the

coefficients x, which makes it fast to find SLEFEs.

3.1.3 Width of the SLEFE

The width of the SLEFE can be defined as

wslefe = maxU

(x − x)

= maxU

{(a − La − a − La)(∆x)+ − (a − La − a − La)(∆x)−}

= maxU

{(a − La − a − La)(∆x)+ + (a − La − a − La)(−∆x)−}

= maxU

d−1∑

i=1

(ai − Lai − ai − Lai)|∆ix|.

If ∆ is a second difference map, wslefe is affinely invariant. That is why we

choose a second difference map for ∆ in practice.

3.1.4 Example

Here is a simple example.

Let us consider a univeriate cubic polynomial function in Bezier form

x(u) := bTx

where

x = [x0 x1 x2 x3]T

b = [b0 b1 b2 b3]T

bi =3!

(3 − i)!i!(1 − u)3−iui.

Page 20: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

12

6h(x-1)4h(x-1/3)

2h(x)

0 1/3 2/3 1

h(x)

1

3h(x-2/3)

(a)

(b)

Figure 3–1: (a) Hat function and (b) piecewise linear function produced by a linearcombination of hat functions.

We choose the basis functions of H as the hat functions because we want to

enclose x with a piecewise linear function. The linear combination of hat functions

h(x − i/n) is a piecewise linear function with its break points at {i/n|i = 0, . . . , n}

(Figure 3–1). Let h be the basis functions of H:

h = [h0 h1 h2 h3]T

hi = h(x − i/3)

where h(x) is a hat function.

Functions in H are piecewise linear functions with their break points on 0,

1/3, 2/3 and 1. But using the basis b, we can express only the linear functions

without any break points. Therefore, orthogonally projecting x to its subspace

B ∩ H is equivalent to selecting the linear parts from x, which is (1 − u)x0 + ux3.

Page 21: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

13

We therefore get

L(x) = (1 − u)x0 + ux3

=

[

1 − u 0 0 u

]

x0

x1

x2

x3

=

[

(1 − u)3 3u(1 − u)2 3u2(1 − u) u3

]

1

3

3 0 0 0

2 0 0 1

1 0 0 2

0 0 0 3

x0

x1

x2

x3

= bT MLx

%end of therefore

ML =1

3

3 0 0 0

2 0 0 1

1 0 0 2

0 0 0 3

.

Now we have to choose the linear map ∆. We choose a second difference

operator to make the width sslefe affinely invariant (3.1.3), and therefore

M∆ =

1 −2 1 0

0 1 −2 1

Ma =1

3

0 −2 −1 0

0 −1 −2 0

because M∆MTa

= I.

Now

a − La = Mab − (bTMLMTa)T

Page 22: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

14

Figure 3–2: SLEFEs of a1 with its control points.

= Mab − MaMTLb

= (Ma − MaMTL)b

=

1

3

0 −2 −1 0

0 −1 −2 0

1

3

0 −2 −1 0

0 −1 −2 0

1

3

3 2 1 0

0 0 0 0

0 0 0 0

0 1 2 3

b

=1

3

0 −2 −1 0

0 −1 −2 0

b

thus we get

a1 =1

3[0 − 2 − 1 0]b

and

a2 =1

3[0 − 1 − 2 0]b.

a1 is depicted in Figure 3–2 with its SLEFEs and control points [18]. Because the

process to construct the SLEFEs of a1 and a2 are offline, we can use any method,

such as optimization, to construct them.

Page 23: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

15

3.1.5 Tensoring SLEFEs

Let

x(s, t) =

ds∑

i=0

dt∑

j=0

xi,jbi(s)bj(t)

= b(s)TXb(t)

be a tensor-product polynomial x(s, t) in the vector space B × B where X is

the coefficient matrix with its components xi,j and b(s) and b(t) are the basis

functions in the Bernstein polynomial form with their degrees ds and dt each. Now

let xi = [xi,0 · · · xi,dt]T then

x(s, t) = b(s)TXb(t) = b(s)T

xT0

...

xTds

b(t) = b(s)T

b(t)Tx0

...

b(t)Txds

= b(s)Tx(t).

For each b(t)T xi, we can enclose them with x(t) = h(t)T uti and x(t) = h(t)T lti

where h(t) is the m-piecewise linear hat function. Let us consider the upper bound

first.

x(s, t) = b(s)Tx(t)

≤ b(s)T

h(t)Tut0

...

h(t)T utds

= b(s)T

(ut0)

T

...

(utds

)T

h(t) = b(s)T

ut0,0 . . . ut

0,m

.... . .

...

utds,0 . . . ut

ds,m

h(t)

=

b(s)T

ut0,0

...

utds,0

. . .b(s)T

ut0,m

...

utds,m

h(t)

≤ [h(s)Tu0 · · · h(s)Tun]h(t)

= h(s)TUh(t)

Page 24: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

16

Figure 3–3: Example of mid-structure. A bi-quadratic Bezier patch (left) finelyevaluated, (middle) approximated by sampling, and (right) its mid-structure [18].

where h(s) is an n-piecewise linear function, uj = [u0,j · · · un,j]T and U is an n×m

matrix with its element of uj,i. The lower bound case is straightforward.

3.1.6 Mid-structure

The mid-structure

x = (x + x)/2

can be used as a good L∞ approximand of the function x and has the tolerance of

wslefe/2. For surfaces in 3D, the mid-structure can be used as a way of triangu-

lation. Compared to other triangulation methods as adaptive triangulation, it is

much faster but still has reasonable tolerance. Figure 3–3 shows the mid-structure

of a bi-quadratic Bezier patch [18].

We are trying to find the intersection by using the mid-structure to approxi-

mate the two surfaces.

3.1.7 Extension to Curves and Surfaces

When we extend SLEFEs to curves and surfaces in 2D or 3D space, we

get the SLEFE for each component separately (x− and y−components for 2D

case and x−, y− and z− components for 3D case). Because all the components

Page 25: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

17

Figure 3–4: Bounding boxes of SLEFEs at break points.

are independent of each other, we get 2D pairs of points, which construct a D-

dimensional axis aligned bounding box at each break point, as Figure 3–4 shows

for the 2D case. Due to the linearity, the original curve or surface is confined in

the convex combinations of the boxes (Figure 3–4). But we need to simplify the

enclosures to make them more useful. But when we deal with mid-structures, we do

not have to care about this issue because the mid-point for each bounding box is

unique.

3.1.8 Inverse of Mid-structure

We can get the original coefficients x from its mid-structure

x = (x + x)/2

= L(x) + (a + La + a + La)(∆x)/2

(3.3)

because a + La and a + La are tabulated, and the operator ∆ is given (second

difference), therefore we get the original function. This inverted function can be

used as an approximand of the piecewise linear function x with known tolerance.

We get the B-Spline form of the intersection curve by inverting the piecewise

linear curve, which is the intersection of the mid-structures of two surfaces.

Page 26: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 4PROCEDURE

4.1 Constructing Mid-structures of Tensor-product Bezier Surfaces

The SubLiME package (http://www.cise.ufl.edu/research/SurfLab) provides

utility functions which find SLEFEs of several kinds of polynomial functions with

various degrees and number of break points. Here is the utility function which finds

the SLEFEs for a tensor-product Bezier surface

int tpSlefe ( REAL *coeff,

int strideu, int stridev,

int degu, int degv,

int segu, int segv,

REAL* upper, REAL* lower,

int stride slefeu, int stride slefev);

where

• coeff: coefficients of Bezier surface

• strideu, stridev: strides between coefficients for each direction

• degu, degv: degree of Bernstein polynomial for each direction

• segu, segv: number of piecewise linear segments for each direction (= # of

break points - 1)

• upper, lower: arrays where the upper and lower bounds at each break point

are stored.

• stride slefeu, stride slefev: strides between SLEFE bounds for each

direction.

As mentioned in 3.1.7, we have to call this function for each x, y and z component.

18

Page 27: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

19

v1

v2 v3

p1

p1

p

Figure 4–1: Intersection of triangle and line segment.

4.2 Finding the Intersection of Mid-structures

To find the intersection of two mid-structures, the collection of piecewise linear

curves, we first need to find the intersections of all the pairs of triangles in each

triangle mesh. After that, we construct the piecewise linear curves by connecting

the line segments properly.

4.2.1 Finding the Intersection of Two Triangles

To find the intersection of two triangles, we need to check the intersection of

each edge of one triangle with the other triangle, thus six intersection tests.

Intersection of a line segment and a triangle. A point p inside a

triangle (including its vertices and edges) can be expressed as a convex combination

of the vertices v1, v2 and v3 as follows:

p = t1v1 + t2v2 + t3v3 (4.1)

where

t1 + t2 + t3 = 1

t1 ≥ 0

t2 ≥ 0

t3 ≥ 0.

Page 28: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

20

And a point on a line segment (including its end points) can be expressed as a

convex combination of two end vertices p1 and p2:

p = sp1 + (1 − s)p2 (4.2)

where 0 ≤ s ≤ 1. Now we can express all the equations as follows:

p2,x

p2,y

p2,z

1

=

v1,x v2,x v3,x p2,x − p1,x

v1,y v2,y v3,y p2,y − p1,y

v1,z v2,z v3,z p2,z − p1,z

1 1 1 0

t1

t2

t3

s

.

Let M be the 4 × 4 matrix above. Then we can find t1, t2, t3 and s by multiplying

the inverse matrix of M on both sides. If all four are non-negative, we can say the

line segment intersects with the triangle.

In most cases, two triangles do not intersect or they intersect in a line segment.

To connect such line segments correctly afterwards, we need to identify each

intersection point uniquely. For the nonsingular and generate cases, a combination

of

• index of the edge which intersects with the other triangle

• index of the triangle mesh where the above edge belongs

• index of the triangle which intersects with the edge above

can be used to identify an intersection point. (Because we have only two triangle

meshes, it is enough to have only the mesh index of the edge.)

Singular cases. The singular cases are:

• when any pair of the three vertices of the triangle are same

• when all the vertices of the triangle lie on the same line

• when the two end points of the line segment are the same

• when the line segment is parallel to the plane where the triangle lies.

Page 29: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

21

For simplicity, we deal only with nonsingular cases. We can avoid most of the

singular cases by additional refinement of the SLEFEs.

Once it is confirmed that they intersect (nonsingular case), we can easily find

the intersection point using (4.1) or (4.2).

Degenerate cases. There are three kinds of degenerate intersection points.

1. when two vertices from each triangle meet (red points in Figure 4–3)

2. when one vertex of one triangle and one edge of the other triangle meet butnot at any of the end points of the edge (blue points in Figure 4–3)

3. when two edges from each triangle meet but not at any of the end points(green points in Figure 4–3)

Degenerate cases cause the intersection test to generate duplicated intersection

points, which are actually the same. So we need an additional algorithm to prevent

such cases.

1. If vertex v11 of one triangle T 1 lies on the other triangle T 2, duplicated

intersection points may be found by the intersection test of two edges e12 and

e13 which share the vertex v1

1. To prevent it, we make the edges exclusive ofeach other (Figure 4–2). In other words, any point on the edge ej

i is definedas

tvji−1 + (1 − t)vj

i+1 (4.3)

where 0 < t ≤ 1, i + k = (i + k + 3) mod 3, and j ∈ {1, 2}. Notice the rangeof t does not include 1, which makes the edges exclusive of each other.

2. To correctly identify the intersection points, when any of the vertices is alsoan intersection point, instead of using the three properties as the identifier,we use

• index of the vertex• index of the mesh where the vertex belongs

as the identifier. This identifier has a higher priority than the previous onewhen comparing two intersection points.

Page 30: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

22

v1

v2

v3

v1

v1

v2

v2

v3v3

e3

e2

e1

Figure 4–2: Making triangle edges exclusive of each other.

3. If two vertices from each triangle intersect, any of the vertices can be usedas the identifier. To make it unique, we use the vertex index of T 2 as theidentifier.

4. If two edges from each triangle intersect, any of the edges can be used as theedge index of the identifier. To avoid this, we use the edge index of T 2 as theedge index of the identifier.

Figure 4–3 shows the various degenerate cases. We can find some singular cases

in the figure. With some more tests for the singular cases, we can use the same

algorithm to uniquely identify the intersection points. But we do not deal with the

singular cases in our implementation.

4.2.2 Finding the Topology of Piecewise Linear Intersection Curves

After collecting all the intersecting line segments, we need to connect them

properly. Each intersection line segment is composed of one or two intersection

points. Because we want to approximate the intersection curves with B-Spline

curves, we ignore the case of one intersection point. In addition, we assume all

the vertices can be shared by two edges at most, otherwise we cannot apply the

inversion process. If any vertex if shared by more than two edges, we connect only

pairs of them thus making them separate.

Using the identifier of each intersection point, as described before, the intersec-

tion curve can be constructed as follows.

At any step, there is a collection of piecewise linear curves constructed so far.

Each piecewise linear curve consists of a list of intersection points. For an incoming

Page 31: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

23

Figure 4–3: Degenerate cases of triangle-triangle intersection. Red, blue, and greenpoints denote each vertex-vertex, vertex-edge, and edge-edge cases.

intersection line segment, its two end points are compared with the first and last

points of each piecewise linear curve. The topology of the current curves change

according to the new line segment as follows (Figure 4–4):

1. Each two end points are the same with the first and last points of the samecurve: The curve becomes closed by the new intersection line segment. Nonew point is added.

2. Two end points are the same with the first or last points of two differentcurves: The curves are merged together. No new point is added.

3. Only one of the end points is the same with the first or last of a curve: Theother end point is added to the curve.

4. None of the two end points is the same with the first or last of any curve.The new curve is created with the two end points as its first and last points.

Page 32: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

24

case 1

case 2

case 3

case 4

Figure 4–4: Constructing the topology of intersection curves.

Page 33: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

25

4.2.3 Inverting Pircewise Linear Curves to B-Spline Curves

The SubLiME package also provides the utility functions which can be used to

invert a piecewise linear curve to a B-Spline curve. It also provides a function for a

closed curve called bspInvClosed. The function for an open curve is as follows:

int bspInv(REAL* mid, int cpnum, int deg,

int mid stride, REAL* coeff, int stride);

where

• mid: coordinates of mid-structure (piecewise linear curve) to be inverted to a

B-Spline curve

• cpnum: number of vertices of mid-structure

• deg: degree of B-Spline curve

• mid stride: stride of vertices of mid-structure

• coeff: array where control points of resulting B-Spline curve will be stored

• stride: stride of control points

Usage of the function for the closed curve is the same.

Page 34: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 5ANALYSIS

5.1 Evaluating an Exact Intersection

To see how close our approximation is to the exact intersection, we need to

find the exact intersection. But as described earlier, the exact intersection can be

found only for a few cases. One of the cases is to find the projection of a curve C

lying in xy-plane on the Bezier surface SH where its control points are the height

fields of xy-plane. If we sweep the curve C along z-axis, we can get a surface SC ,

and the projection on the surface SH of C can be considered as the intersection of

the two surfaces SH and SC (Figure 5–4). In this case, we can evaluate the exact

intersection using composition as follows.

Let the domain DH of SH be the unit square of u-v plane where 0 ≤ u, v ≤ 1,

and DC of C be the unit length line segment of t axis where 0 ≤ t ≤ 1.

We need to evaluate the points on the intersection curves corresponding to

0 ≤ t ≤ 1. For a given t value, we can easily evaluate the corresponding point

(xC(t), yC(t)) on C. We now need to map this point to a (u, v) value of DH . Let

(xH(u, v), yH(u, v), zH(u, v)) be the point on SH . Because the x and y coordinate

values of SH are regularly located, we can linearly map a point (x, y) on the x-y

plane to DH . In other words,

u = axH(u, v) + b = axC(t) + b

v = cyH(u, v) + d = cxC(t) + d

where a and c are not zeros because x and y coordinate values of SH are same with

those of C. Now we can evaluate the z coordinate value of the intersection point

26

Page 35: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

27

using (u, v). Therefore the poins on the intersection curve is

(xC(t), yC(t), zH(axC(t) + b, byC(t) + d)).

Figure 5–5 shows an exact intersection curve evaluated in this way.

5.2 Measuring Tolerance

To measure the tolerance of the approximated intersection curve, we need to

simplify its SLEFEs. Let us examine the 2D case. We can easily extend it to the

3D case.

As mentioned before, at each break point, the enclosing bounds built by

SLEFEs result in an axis-aligned box. To make it simple to measure the tolerance

of intersection, we need the upper and lower bounds to be (i) parallel with the

mid-structure and (ii) have the same distance from the mid-structure. To do this,

we find the planes each containing the corners of the bounding boxes at the break

points and select the one with maximum distance from the mid-structure. We need

to find and check N × 2D number of planes where N is the number of break points

for each mid-structure segment and D is the dimension. For example, 2 × 22 = 8

number of planes are found and checked in 2D case (Figure 3–2). In the 3D case,

we may have 3 × 23 number of planes because we need to find such bounds for each

triangle. Then we get a pair of SLEFEs which satisfy our conditions.

A plane can be expressed as

d = n · x = nT x

where n is the normal vector. If n is normalized, d is the distance of the plane

from the origin. In other words, all the points on the plane have the same distance

from the origin if they are projected to the same normal vector n. Therefore,

the distance of the plane where a point p belongs and has normal vector n is

nTp. By comparing such distance of all the points, we can find the plane which

Page 36: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

28

1x∆

1y∆

2x∆

2y∆

Figure 5–1: Finding simple boundaries for a line segment.

θθθθe1

e2

θθ

θθ

φ

sin

cos2

sin

)180cos(2cos2

2122

21

2122

21

2122

21

eeee

eeeelllle

++=

−−+=−+=

θsin1

1e

l =

θsin2

2

el =

θφ −= 180

Figure 5–2: Tolerance according to the intersection angle.

Page 37: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

29

is the farthest from the plane of mid-structure. In other words, the tolerance of a

mid-structure segment (triangle in 3D case) e is

e = maxi

|nTpi − d|

where n is the normlized normal vector of the plane where the triangle lies, pi is

one of the corner points, and d is the distance of the mid-structure segment from

origin.

Now, let us consider the case when two SLEFEs intersect (Figure 5–2). From

the figure, we can find that the intersection point of two SLEFEs is enclosed in

a parallelepiped and the maximum tolerance is half of its longer diagonal. If the

SLEFEs intersect with the angle θ < 90◦, the tolerance is

e =

e21 + e2

2 + 2e1e2 cos θ

sin θ

where e1 and e2 are the tolerance of each SLEFE.

Figure 5–3 shows the tolerance with various intersection angles and ratio of

two tolerances. As it shows, the tolerance increases rapidly as the intersection angle

gets close to zero.

For each pair of triangles, we can find a line segment with its tolerance. We

can imagine a cylinder for each line segment of which the radius is the tolerance.

The exact intersection curve is guaranteed to be inside of such cylinders for each

corresponding segment (Figure 5–9).

By inverting the piecewise linear curves to B-Spline curves, we get additional

error bounds sslefe/2 between the line segment and its corresponding B-Spline

curve segment. Therefore the overall tolerance is just e + sslefe/2.

Page 38: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

30

0 10 20 30 40 50 60 70 80 900

1

2

3

4

5

6

7

8

9

10

intersection angle

tole

ranc

e

e1=e2

e1=2e2

e1=3e2

Figure 5–3: Tolerance with respect to intersection angle and ratio of boundingspheres. x-axis denotes the intersection angle, e1 is fixed to 1 and from the bottomcurve, e2 = 1, 2, 3, . . . and so on.

Figure 5–4: Example 1. Two surfaces intersecting each other. The cylindrical sur-face is constructed using four Bezier patches.

Page 39: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

31

Figure 5–5: Example 1. Exact intersection curve computed as described.

Figure 5–6: Mid-structures of Figure 5–4.

Page 40: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

32

Figure 5–7: Intersection of two mid-structures in Figure 5–6.

Figure 5–8: The B-Spline curve inverted from Figure 5–7.

Page 41: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

33

Figure 5–9: Tolerance of the intersection curve in Figure 5–7 illustrated by cylinderabout the linear segments.

Figure 5–10: Example 2. Two surfaces with the tolerance of its intersection curve.

Page 42: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

CHAPTER 6CONCLUSION AND FUTURE WORK

To approximate the intersection curves of two surfaces, we triangulate the

original surfaces using mid-structures of SLEFEs. The piecewise linear intersection

curves of these two triangle meshes are inverted to B-Spline curves to approximate

the intersection curves. To improve the result, we can apply various methods to

each process.

First, because finding the enclosing bounds in the basis space is offline, we

can apply various methods. For example, we can use some optimization methods

to minimize the width of the SLEFEs. To make the upper and lower SLEFEs

always parallel, we may be able to make the upper and lower SLEFEs parallel

in basis space. All such improvements do not affect the efficiency because they

are once-and-all processes. If we want to use the mid-structure as a method of

triangulation, rather than using the mid-points to get the mid-structure, we can

find an independent piecewise linear curve which approximates the basis function

and use this to get the mid-structures.

Because the process of triangulating the original surfaces is separated from the

process of approximating the piecewise linear curve using B-Spline curves, we can

use other methods to triangulate the surfaces only if the tolerance is known. But

other triangulation methods are probably slower than the SLEFE method.

34

Page 43: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

REFERENCES

[1] Thomas A. Grandine, “Applications of Contouring,” SIAM Review, vol. 42,no. 2, pp. 297–316, Jun. 2000.

[2] B. A. Jean and Bernd Hamann, “An efficient surface-surface intersectionalgorithm using adaptive surface triangulations and space partitioning trees,”Mathematical Engineering in Industry, vol. 7, no. 1, pp. 25–40, Sep. 1998.

[3] Ernst Huber, “Intersecting general parametric surfaces using boundingvolumes,” in Proceedings of the 10th Canadian Conference on ComputationalGeometry — CCCG’98, pp. 52–53, Montreal, Quebec, Canada, Aug. 1998.

[4] Shankar Krishnan and Dinesh Manocha, “An efficient surface intersectionalgorithm based on lower-dimensional formulation,” ACM Transactions onGraphics, vol. 16, no. 1, pp. 74–106, Jan. 1997.

[5] Nicholas M. Patrikalakis, “Surface-to-surface intersections,” IEEE ComputerGraphics and Applications, vol. 13, no. 1, pp. 89–95, Jan. 1993.

[6] Ernst Huber, “Surface-to-surface intersection based on triangular parameterdomain subdivision,” in Proceedings of the 11th Canadian Conference onComputational Geometry — CCCG’99, pp. 100–102, Vancouver, BritishColumbia, Canada, Aug. 1999.

[7] Wilhelm Barth and Ernst Huber, “Computations with tight boundingvolumes for general parametric surfaces,” in Proceedings of 15th EuropeanWorkshop on Computational Geometry — CG’99, pp. 123–126, Antibes,France, Mar. 1999.

[8] R. E. Barnhill, G. Farin, M. Jordan and B. R. Piper, “Surface/surfaceintersection,” Computer Aided Geometric Design, vol. 4, no. 1–2, pp. 3–16,Jul. 1987.

[9] S. Lanquetin, S. Foufou, H. Kheddouci and M. Neveu, “Computing subdivi-sion surface intersection,” in Proceedings of WSCG ’2003, pp. 73–76, CampusBory, Plzen - Bory, Czech Republic, Feb. 2003.

[10] K. Abdel-Malek and H. J. Yeh, “Determining intersection curves betweensurfaces of two solids,” Computer-Aided Design, vol. 28, no. 6–7, pp. 539–549,Jun.–Jul. 1996.

[11] Edwin Boender, “A survey of intersection algorithms for curved surfaces,”Computers & Graphics, vol. 15, no. 1, pp. 109–115, 1991.

35

Page 44: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

36

[12] Thomas A. Grandine and Frederick W. Klein IV, “A new approach to thesurface intersection problem,” Computer Aided Geometric Design, vol. 14, no.2, pp. 111–134, Feb. 1997.

[13] C. L. Bajaj, C. M. Hoffmann, R. E. Lynch and J. E. H. Hopcroft, “Tracingsurface intersections,” Computer Aided Geometric Design, vol. 5, no. 4, pp.285–307, Nov. 1988.

[14] Luiz Henrique de Figueiredo, “Surface intersection using affine arithmetic,”in Proceedings of the Conference on Graphics Interface ’96, pp. 168–175, May1996.

[15] M. Gleicher and M. Kass, “An interval refinement technique for surfaceintersection,” in Proceedings of the Conference on Graphics Interface ’92, pp.242–249, Vancouver, British Columbia, Canada, May 1992.

[16] Jorg Peters and Xiaobin Wu, “Optimized refinable surface enclosure,”Technical report, University of Florida, Oct. 2000.

[17] Jorg Peters and Xiaobin Wu, “On the optimality of piecewise linear max-norm enclosures based on slefes,” in Proceedings of Curve and SurfaceDesign: Saint-Malo 2002, pp. 335–344, Saint-Malo, France, Jul. 2002.

[18] Jorg Peters, “Efficient one-sided linearization of spline geometry,” inProceedings of The Mathematics of Surfaces X, pp. 297–319, Leeds, UK, Sep.2003.

[19] David Lutterkort and Jorg Peters, “Optimized refinable enclosure ofmultivariate polynomial pieces,” Computer Aided Geometric Design, vol. 18,no. 9, pp. 851–863, Nov. 2001.

[20] G. Farin, “An SSI bibliography,” in R. Barnhill, editor, Geometry Processingfor Design and Manufacturing, pp. 205–207, SIAM, Philadelphia, Jan. 1992.

Page 45: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

BIOGRAPHICAL SKETCH

Minho Kim was born on March 3, 1974, in Seoul, Republic of Korea. He

received his Bachelor of Science degree in electrical engineering in 1997 from Seoul

National University, Seoul, Republic of Korea. In 2004, he received his Master of

Science degree from the Department of Computer and Information Science and

Engineering at the University of Florida. His major research area is computer

graphics.

37

Page 46: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

I certify that I have read this study and that in my opinion it conforms toacceptable standards of scholarly presentation and is fully adequate, in scope andquality, as a thesis for the degree of Master of Science.

Jorg Peters, Jorg Peters

Associate Professor of CISE

I certify that I have read this study and that in my opinion it conforms toacceptable standards of scholarly presentation and is fully adequate, in scope andquality, as a thesis for the degree of Master of Science.

Anand Rangarajan

Associate Professor of CISE

I certify that I have read this study and that in my opinion it conforms toacceptable standards of scholarly presentation and is fully adequate, in scope andquality, as a thesis for the degree of Master of Science.

Paul Fishwick

Professor of CISE

Page 47: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

This thesis was submitted to the Graduate Faculty of the College of Engi-neering and to the Graduate School and was accepted as partial fulfillment of therequirements for the degree of Master of Science.

August 2004

Pramod P. Khargonekar

Dean, College of Engineering

Winfred M. Phillips

Dean, Graduate School

Page 48: FINDING INTERSECTION CURVES USING SUBDIVIDABLE LINEAR ...ufdcimages.uflib.ufl.edu/UF/E0/00/57/02/00001/kim_m.pdf · finding intersection curves using subdividable linear efficient

TITLE OF THE DISSERTATION

Minho Kim(352) 377-3788Department of Computer and Information Science and EngineeringChair: Jorg PetersDegree: Master of ScienceGraduation Date: August 2004

Enter the text of you general audience abstract here.