1 precise voronoi cell extraction of free-form rational planar closed curves iddo hanniel,...
Post on 21-Dec-2015
220 views
TRANSCRIPT
1
Precise Voronoi Cell Extraction Precise Voronoi Cell Extraction of Free-form Rational Planar of Free-form Rational Planar
Closed CurvesClosed CurvesIddo Hanniel, Ramanathan Muthuganapathy, Iddo Hanniel, Ramanathan Muthuganapathy,
Gershon ElberGershon ElberDepartment of Computer Science, Technion, IsraelDepartment of Computer Science, Technion, Israel..
&&Myung-Soo KimMyung-Soo Kim
School of Computer Science and Engineering,School of Computer Science and Engineering,Seoul National University, KoreaSeoul National University, Korea..
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 2
Definition (Voronoi cell) Given - C0(t), C1(r1), ... , Cn(rn)
- disjoint rational planar closed regular C1 free-form curves.
The Voronoi cell of a curve C0(t) is the set of all points closer to C0(t) than to Cj(rj), for all j > 0.
Currently, our implementation assumes C0(t) to be convex.
C1(r1)
C2(r2)
C3(r3)
C4(r4)
C0(t)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 3
Definition (Voronoi cell (Contd.))
Boundary of the Voronoi cell.
Voronoi cell consists of points that are equidistant and minimal from two different curves.
C0(t)
C1(r1)
C2(r2)
C3(r3)
C4(r4)
C3(r3)C0(t),
C0(t), C4(r4)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 4
Definition (Voronoi cell (Contd.))
The above definition excludes non-minimal-distance bisector points.
This definition excludes self-Voronoi edges.
rr22rr33
rr11
tt
rr44
C0(t)
C1(r)rr
pp
“The Voronoi cell consists of points that are equidistant and minimal from two different curves.”
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 5
Definition (Voronoi diagram)
The Voronoi diagram is the union of the Voronoi cells of all the free-form curves. C0(t)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 6
Existing approaches for VD of free-formsFarouki and Ramamurthy 1999 – V.D. and medial axis.
Numerically traces the bisectors and trim them to get V.D. or MAT.Ramanathan and Gurumoorthy 2003 – Medial Axis (MA). Numerically traces the MAT segments directly. Elber and Kim 1999 – Bisector for planar rational curves.
An implicit representation of bisector.
Linear/circular arc approximation [Gursoy and Patrikalakis 1992, Held 1998, Ju-Hsein Kao 1999].
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 7
Our approach
Using the original representation of the input curves (with no linear / circular approximation).
Generate an accurate implicit representation of the Voronoi cell.
Exact Approximated
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 8
Outline of the algorithm
Implicit bisector function
Application of constraints
Lower envelope algorithm
Splitting into monotone pieces
trtr-space-spaceEuclidean Euclidean spacespace
C0(t)
C1(r)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 9
Implicit bisector functionGiven two regular C1 parametric curves C0(t) and
C1(r), we get an expression for a normal-intersection point: P(t,r) = (x(t,r), y(t,r)).
The implicit function F3 is defined by: 0)()(,
2
)()(),(),( 10
103
rCtC
rCtCrtPrtF
)(0 tC
)(1 rC ),( rtP
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 10
Computing points on the bisector
Points on the bisector are calculated using the (t,r) pairs of the zero-set of F3(t,r).
For every pair (t,r) the corresponding Euclidean point P is computed using the mapping: P(t,r) = (x(t,r), y(t,r)).
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 11
Implicit bisector function – untrimmed bisector
tr
F3(t,r)
C1(r)
C0(t)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 12
Splitting the zero-set of the function into monotone pieces
t t
rr
Keyser et al., Keyser et al., Efficient and exact manipulation of algebraic Efficient and exact manipulation of algebraic points and curvespoints and curves, CAD, 32 (11), 2000, pp 649--662., CAD, 32 (11), 2000, pp 649--662.
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 13
Constraints - orientation
Orientation (LL) Constraint – purge away points of the untrimmed bisector that do not lie on the desired side (we assume left side of both the curves as the desire side).
)( 22 tC
)( 11 tC
)( 11 tN L
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 14
LL-constraint
Untrimmed bisector
C0(t)C0(t)
C1(r)C1(r)
Trimmed bisector
LLLL
LLRR
RRLL
RRRR
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 15
Constraints - curvature
Curvature Constraint (CC) – purge away points of the untrimmed bisector whose distance to its footpoints (i.e., the radius of the Voronoi disk) is larger than the radius of curvature (i.e., 1/κ) at the footpoint.
1)(ˆ)(),(),( 21 iiiiii tNttCttP
)( 22 tC
)( 11 tC),( 21 ttP
)(ˆ111 tN
NN11//κκ11
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 16
Illustration of curvature constraint1)(ˆ)(),(),( 21 iiiiii tNttCttP
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 17
Application of curvature constraint
Before After
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 18
Illustration of lower envelope
tt
DD
tt
tt
DD
DD(a)(a) (b)(b)
(c)(c)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 19
Lower envelope algorithm
Standard Divide and Conquer algorithm.
The main needed functions are:
Identifying intersections of curves.
Comparing two curves at a given parameter (above/below).
Splitting a curve at a given parameter.
||Di (t, ri)||2 = ||Dj (t, rj)||2 ,
F3(t, ri) = 0 ,
F3(t, rj) = 0.
Compare ||Di (t, ri)||2 and ||Dj(t,rj)||2 at the parametric values.
Split F3(t, ri) = 0 at the tri-parameter.
General Lower Envelope Voronoi Lower Envelope
Di (t, ri) = || P(t,ri) – C0(t)||A distance function D defined by
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 20
Result1
C0(t)
C0(t)
C1(r1)C1(r1)
C2(r2)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 21
Result1 (Contd.)
C0(t)
C0(t)C1(r1)
C1(r1)
C2(r2)
C2(r2)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 22
Results
C0(t)
C0(t)
C1(r1)
C1(r1)C2(r2)
C2(r2)
C3(r3)
C3(r3)
C4(r4)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 23
Results
C0(t)
C0(t)
C1(r1)C1(r1)
C2(r2)C2(r2)
C3(r3)C4(r4)
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 24
Discussion
Input rational curves are represented as Bezier/B-spline curves. The input curves are approximated neither by linear segments nor by circular arcs.
Implementation
1. Using IRIT software in C, developed at the Technion.
1. The bivariate function F3(t,r) is obtained using the symbolic library.
2. Constraints are solved using the multivariate library.
2. Uses floating-point arithmetic. Computation took from several seconds to two minutes.
Center for Graphics and Geometric Computing, TechnionCenter for Graphics and Geometric Computing, Technion 25
Future workExtend to open or non-C1 curves – extending the lower
envelope algorithm to point-curve bisectors.Generating Voronoi diagram and medial axis transform
(MAT) of free-form curves efficiently using the implicit representation and solver, and possibly using the lower envelope algorithm.
Implementation using exact arithmetic.
26
The EndThe End