1 Introduction
An arrangement of curves is a subdivision of the plane induced by those curves. The arrangement of pseudolines has complexity , where a pseudoline is a curve that goes to infinity in two directions, and two pseudolines can intersect at most once. An outputsensitive 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 nonrasterized curves are examples of realworld examples of polynomial curves.
Testing whether a given pseudoline arrangement can be converted into an straightline arrangement is known as the stretchability problem is NPhard and is equivalent to existential theory of the reals [3]. A generalized version of this problem is the dstretchability 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 datastructure and query time for segments [2]. Without using a pointlocation datastructure, the problem can be solved in time, for arbitrary shapes with an inclusionexclusion oracle , by testing whether the point is inside or outside each shape.
Since the problem of converting the arrangement of pseudolines into a polygonal arrangement is NPhard [3], the pointlocation on polygonal subdivisions is not helpful. The problem of pointlocation 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 pointlocation 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 PointLocation DataStructure 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 curvemonotone partitioning. Then, we use a combination of pointlocation 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 CurveMonotone 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 PointLocation Algorithm
Assuming a curvemonotone planar subdivision is given, Algorithm 3 builds a datastructure for the pointlocation problem.
Assuming the algorithm for constructing the curvemonotone planar subdivision has time complexity , space complexity and maximum cell complexity , Algorithm 3 takes for building the subdivision, sorting and constructing the pointlocation datastructure.
An example of a valid partitioning for the pointlocation 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 pointlocation 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 PointLocation.
While building an exact pointlocation datastructure might be expensive in terms of time complexity, it is possible to build approximate pointlocation data structures by enclosing the original curve between two simpler curves. Then, the exact pointlocation datastructure needs to be used for the area between the enclosing simplified curves. For the onesided error, such as never reporting a point inside (outside) the shape as outside (inside), the datastructure built on the bounding (enclosed) curve is enough to get an approximate solution.
Application: PointLocation 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 pointlocation 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 NPhard. Applied Geometry and Discrete MathematicsThe 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.