Download presentation
Presentation is loading. Please wait.
1
1 An Exact, Complete and Efficient Computation of Arrangements of Bézier Curves Iddo Hanniel – Technion, Haifa Ron Wein – Tel-Aviv University
2
2 Planar Arrangements Given a collection C of curves in the plane, the arrangement A ( C ) is the subdivision of the plane into vertices, edges and faces induced by the curves in C.
3
3 Applications of Arrangements Robot Motion Planning. Geographic Information Systems. Assembly Planning. Many other geometric problems can be mapped (through duality or otherwise) to problems on arrangements. CAD – sketches, Boolean operations.
4
4 Robustness Problems in Geometric Computing Robustness in geometric computing is a difficult and well-known problem [Hoffman 89, 01][Yap 04]. Machine-precision arithmetic may yield incorrect results.
5
5 The Exact Geometric Computation Paradigm The Exact Geometric Computation Paradigm [Yap and Dubé 95] was successful in robustly solving many computational geometry problems. It requires that all geometric operations within the algorithm are preformed correctly. Makes use of exact arithmetic software libraries for multiple precision integers and rational numbers, extended floats [GMP], and algebraic numbers [CORE, LEDA].
6
6 Our Contribution We present a software package for computing arrangements of Bézier curves that is: Exact: Employs the exact computation paradigm (uses exact arithmetic). Complete: Handles all degenerate cases. Efficient: Makes use of geometric properties of Bézier curves for speed-up of the computations. Publicly available in the new CGAL 3.3 release.
7
7 Previous Work Previous implementations of arrangements of algebraic curves are either: Not exact: Most current solid modeling systems use non-robust floating point arithmetic. Not complete: Do not handle all degenerate cases (MAPC [Keyser et al. 2000]). Handle only a specific family of curves (conics [Wein 2002], cubics [Eigenwillig et al. 2004]). Not efficient: Computer algebra systems can be used for computing exact arrangements but are too slow.
8
8 Preliminaries CGAL’s Arrangement package [ www.cgal.org/, www.cs.tau.ac.il/CGAL/ ]. Exact rational and algebraic number types [CORE, LEDA]. Bézier curve properties for faster computation. Our work is based on three “building blocks”:
9
9 CGAL’s Arrangement Package The arrangement may either be constructed incrementally, or using a sweep-line algorithm. It constructs the underlying data-structure and enables efficient traversal over the vertices, edges and faces of the arrangement. Point-location queries are supported. CGAL’s arrangement package handles the topology of planar arrangements and separates it from the geometry of the curves:
10
10 The package is designed to handle all sorts of degenerate inputs, such as: Robustness Issues Vertical segments Overlapping curves Several curves with common intersection Assuming correctness of the geometric methods.
11
11 The Geometric Traits Functions Comparing two points by their x-coordinates. Divide a curve to x-monotone sub-curves. Determine if a given point is above, below or on a sub-curve. Compare the slope of two sub-curves next to their intersection. Compute the intersection points (or overlaps) of two curves. The users should supply a traits class that handles the geometry of the curves. The geometric functions that need to be implemented by the traits class are:
12
12 Bézier Curve Properties We Use Convex hull property: B is entirely contained in the control polygon p 0...p n. Variation diminishing property: the number of intersections of B with a line l is not greater than the intersection of l with the control polygon. Derivative of a Bézier curve: is also a Bézier curve with control points. p0p0 p3p3 p1p1 p2p2 p4p4 p5p5 p6p6
13
13 Bézier Curve Properties We Use The de Casteljau subdivision algorithm: P 2 (1) P 0 (3) p0p0 P 0 (1) p1p1 P 0 (2) P 1 (1) P 1 (2) p2p2 p0p0
14
14 Exact Algebraic Number Types Constructed from integers, rational numbers or floating point numbers. Support exact {+, -, *, /, √..} operations. Support the root_of_polynomial operator, but only for polynomials with rational coefficients. Support exact comparisons! Algebraic number types: CORE::Expr (www.cs.nyu.edu/exact/). LEDA::real (www.algorithmic-solutions.com/).
15
15 Representing Geometric Types There are three geometric types in the traits class: Point_2. Curve_2 – represented by the input control points p 0 …p n. The representation of the polynomials X(t) and Y(t) in standard monomial basis is computed only when needed (lazy evaluation). X_monotone_curve_2 – represented by its originating Curve_2 and its two endpoints.
16
16 Representing Point_2 We store a reference to the originating curves of the point coupled with a corresponding small control polygon bounding the point. The bounding polygons induce a rational bounding box on the point and a rational bounding interval on the parameter of the point in the originating curve. The exact algebraic intersection/x-tangency parameters (and corresponding (x,y) coordinates) are computed only if necessary. Originating curves Algebraic coords Rational BBox
17
17 Computing Intersection Points Exactly Computing exactly – the roots of the polynomial system: X 1 (t)-X 2 (s)=0 Y 1 (t)-Y 2 (s)=0 Can be computed exactly as the roots of the resultants: Res s (X 1 (t)-X 2 (s), Y 1 (t)-Y 2 (s)) Res t (X 1 (t)-X 2 (s), Y 1 (t)-Y 2 (s)) Pairing (t,s) pairs and computing the corresponding (x,y) coordinates by assigning in original curve. Problem: the high degree of the resultants (d 1 d 2 ). Thus, we wish to avoid exact computation when possible.
18
18 Isolating Intersection Points – Geometric Filtering Ensuring there is at most one intersection – the tangent bounding cones of the curves are disjoint. Ensuring there is at least one intersection – the skewed bounding boxes intersect fully, with endpoints on opposite sides of the intersection. B1B1 B2B2 C(B 1 )
19
19 Comparing Points and Slopes Comparing x-coordinates of two points: Exact – comparison of algebraic coordinates (we wish to prevent this whenever possible). Geometric filtering – compare the rational bounding boxes, refine the bounding polygons (and hence the bounding boxes) if needed. Comparing slope of curves to the right of their intersection point: Exact – compare the derivative at the algebraic coordinates (we wish to prevent this whenever possible). Geometric filtering – if the intersection point is isolated then the tangent cones are disjoint – compare any two tangents.
20
20 Determining Point-Curve Position If we know the point is not on the curve we can subdivide until the bounding boxes are disjoint. How do we determine if a point is on a curve? Combinatorial filtering – if the curve is one of the point’s originating curves we are done. Geometric filtering – compare bounding boxes and do some refining (in most cases this is enough to verify the point is not on the curve). Exact – if point p=(x 0,y 0 ) is rational, evaluate the polynomial Y(t 0 ) at the root t 0 of x 0 =X(t) (which is a polynomial with rational coordinates). If point p is algebraic, intersect the curve with one of p’s originating curves and compare intersection parameter.
21
21 Experimental Results Examples of Degeneracy 4 curves intersecting at a single point (~0.1 sec) Intersection with self intersection (~0.1 sec)
22
22 Experimental Results – Random Parabolas Input fileNumber of vertices IRIT floating point traits Exact Conics traits Exact Bézier traits Filtered Bézier traits Parabolas_10 570.00720.1490.3320.240 Parabolas_20 1250.01257.4071.0600.632 Parabolas_30 2380.023126.0242.3801.576 Parabolas_40 422N/A232.3154.3853.752 Arrangement construction time for different inputs
23
23 Experimental Results – Higher Degrees Input fileNumber of vertices IRIT floating point traits Exact Bézier traits Filtered Bézier traits Degree_3 400.0041.2200.112 Degree_4 520.0167.9160.192 Degree_5 500.02051.0790.244
24
24 Experimental Results - BOPS Char. #1 n1n1 Char. #2 n2n2 Exact traitsFiltered traits T init T comp T init T comp A23V200.10517.40.0280.154 H48O160.195174.90.0320.325 S35Z150.382367.70.0300.502 m52g430.402543.60.0720.532 g43s290.360737.80.0690.734
25
25 Future Work Test other representations and number types for the geometric filtering (interval arithmetic, extended floats). Further research of the algorithms under the exact computation paradigm and try to incorporate separation bounds. Extend the implementation to rational Bézier curves. Extend the implementation to B-spline and NURBS curves – either by repeated knot insertion or using their similar properties.
26
26 Thank you! This research has been supported by: European FP6 NoE grant 506766 (AIM@SHAPE). Israel Science Foundation (grant No. 857/04). IST Programme of the EU as Shared-cost RTD (FET Open) Project Contract No IST-006413 (ACS - Algorithms for Complex Shapes). Israel Science Foundation (grant no. 236/06). The Hermann Minkowski-Minerva Center for Geometry at TAU.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.