1 Introduction
An arrangement of curves is a subdivision of the plane induced by those curves. The arrangement of pseudo-lines has complexity , where a pseudo-line is a curve that goes to infinity in two directions, and two pseudo-lines can intersect at most once. An output-sensitive algorithm for the arrangement of Jordan arcs with running time exists, where is the number of intersections in the arrangement [4].
Bézier curves based on Bernstein basis polynomials from computer graphics for non-rasterized curves are examples of real-world examples of polynomial curves.
Testing whether a given pseudoline arrangement can be converted into an straight-line arrangement is known as the stretchability problem is NP-hard and is equivalent to existential theory of the reals [3]. A generalized version of this problem is the d-stretchability discusses the possibility of replacing each pseudoline with a polynomial of degree which requires for all simple arrangements [4].
Finding a point in a planar subdivision and returning the face that contain that point is called point location. Point location in a polygonal subdivision with segments can be solved in preprocessing to build the data-structure and query time for segments [2]. Without using a point-location data-structure, the problem can be solved in time, for arbitrary shapes with an inclusion-exclusion oracle , by testing whether the point is inside or outside each shape.
Since the problem of converting the arrangement of pseudo-lines into a polygonal arrangement is NP-hard [3], the point-location on polygonal subdivisions is not helpful. The problem of point-location in a set of congruent disks has already been discussed, and an algorithm with query time and preprocessing exists for it [1].
Contributions
-
We improve the previous work on the point-location of congruent disks to use query time, instead of , at the cost of increasing the preprocessing time to .
-
We give a data structure for the point location problem in the arrangement of a set of curves with preprocessing and query time, if an algorithm for constructing a planar subdivision of complexity and cell size at most in time is given.
2 The Point-Location Data-Structure for Curves
In Algorithm 3, we use a polygonal partitioning such that the part of the curve inside each partition is monotone with respect to at least one boundary of that cell, which we call a curve-monotone partitioning. Then, we use a combination of point-location in polygonal subdivisions and binary search on the ordered set of polynomial arcs bounded by a segment of the subdivision (Algorithm 4).
2.1 A Curve-Monotone Polygonal Subdivision for Disjoint Arcs of Polynomials of Maximum Degree
After breaking the input into a set of disjoint -monotone convex/concave curves, Algorithm 1 computes a subdivision of the plane, such that the order of the curves in each cell is monotone with respect to each cell boundary.
To do this, first compute the bounding box of each curve. Some of the bounding rectangles might be intersecting, or inside one another:
-
[label=()]
-
For a sequence of boxes inside one another (nested rectangles), merge their boxes by considering the outermost bounding box only, if there are no other rectangles outside this sequence inside them.
-
For intersecting boxes, add the tangents to the curves at the points of intersections with bounding rectangles of other curves and their own. Then, starting from a point on the boundary of the intersected area, move towards one of the curves, until hitting the other curve’s bounding box or tangent, then repeat this on the other curve. If it is the intersection of two curves, draw the common tangent of the curves to separate them.
-
For disjoint rectangles inside another rectangle, we divide them by extending the edges of the rectangles inside the bigger rectangle, until intersecting the boundary of the extension of an edge of another rectangle.
-
For disjoint rectangles, extend their edges until intersecting the boundary or the extension of an edge to create a set of disjoint rectangles.
-
For intersecting nested bounding boxes, first handle the intersecting segments, then handle the disjoint and then the nested rectangles.
An example of these cases is shown in Figure 1.

2.2 A Subdivision For Disks
Algorithm 2 computes a planar subdivision for a set of arbitrary disks.
An example of the possible cases of Algorithm 2 is shown in Figure 2.

The size of the arrangement is , since at most lines connect the centers of the disks, there are mutual tangents, and the bounding box adds at most vertices and therefore a multiple of at most . Because of the triangulation, the cell complexity is at most
2.3 The Point-Location Algorithm
Assuming a curve-monotone planar subdivision is given, Algorithm 3 builds a data-structure for the point-location problem.
Assuming the algorithm for constructing the curve-monotone planar subdivision has time complexity , space complexity and maximum cell complexity , Algorithm 3 takes for building the subdivision, sorting and constructing the point-location data-structure.
An example of a valid partitioning for the point-location using Algorithm 3 is shown in Figure 3.

Theorem 2.1
Algorithm 3 using Algorithm 1 for computing the subdivision has time complexity and space complexity .
Proof
The sizes of intermediate structures is as follows:
Triangulating the regions does not increase the overall complexity, since this adds a linear number of edges.
Breaking each polynomial into monotone parts takes time. Computing takes time. Triangulating the regions takes linear time, and sorting the set of segments in each cell takes . So, the time complexity is dominated by the time complexity of computing .
Theorem 2.2
Algorithm 4 has time complexity .
Proof
The point-location in takes time, since it is a polygonal point location for an input of size . Based on Algorithm 3, the complexity of each cell is at most , and each list has size at most , so the binary searches take time. So, the total time complexity of a query is .
3 Open Problems
Approximate Point-Location.
While building an exact point-location data-structure might be expensive in terms of time complexity, it is possible to build approximate point-location data structures by enclosing the original curve between two simpler curves. Then, the exact point-location data-structure needs to be used for the area between the enclosing simplified curves. For the one-sided error, such as never reporting a point inside (outside) the shape as outside (inside), the data-structure built on the bounding (enclosed) curve is enough to get an approximate solution.
Application: Point-Location among Contour Lines.
For a given objective function and its discretization, the contour lines separate the input into regions such that the value of the objective function is the same between two contour curves. By building a point-location data structure on such an arrangement, it is possible to get the values with error dependent on the discretization used when building the contour lines. An example of this method exists for the length query problem [1].
References
- [1] Aghamolaei, S., Keikha, V., Ghodsi, M., Mohades, A.: Windowing queries using Minkowski sum and their extension to MapReduce. Journal of Supercomputing (2020)
- [2] De Berg, M., Van Kreveld, M., Overmars, M., Schwarzkopf, O.: Computational geometry. In: Computational geometry, pp. 1–17. Springer (1997)
- [3] Shor, P.: Stretchability of pseudolines is NP-hard. Applied Geometry and Discrete Mathematics-The Victor Klee Festschrift (1991)
- [4] Toth, C.D., O’Rourke, J., Goodman, J.E.: Handbook of discrete and computational geometry. Chapman and Hall/CRC (2017)
Comments
There are no comments yet.