finding intersection curves using subdividable linear...
TRANSCRIPT
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
Copyright 2004
by
Minho Kim
To my parentsand
my sister
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
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
5.2 Measuring Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . 27
6 CONCLUSION AND FUTURE WORK . . . . . . . . . . . . . . . . . . 34
REFERENCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
BIOGRAPHICAL SKETCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
vi
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
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
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
2
approximation excludes singular cases. Our method excels on speed and produces a
useful output curve. Moreover, it is refinable with decreasing tolerance guaranteed.
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
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
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].
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].
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
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)
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
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.
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.
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.
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
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.
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)
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
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.
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
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.
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.
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.
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
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.
24
case 1
case 2
case 3
case 4
Figure 4–4: Constructing the topology of intersection curves.
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.
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
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
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.
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.
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.
31
Figure 5–5: Example 1. Exact intersection curve computed as described.
Figure 5–6: Mid-structures of Figure 5–4.
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.
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.
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
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
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.
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
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
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
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.