Point-Location in The Arrangement of Curves

by   Sepideh Aghamolaei, et al.
Sharif Accelerator

An arrangement of n curves in the plane is given. The query is a point q and the goal is to find the face of the arrangement that contains q. A data-structure for point-location, preprocesses the curves into a data structure of polynomial size in n, such that the queries can be answered in time polylogarithmic in n. We design a data structure for solving the point location problem queries in O(log C(n)+log S(n)) time using O(T(n)+S(n)log(S(n))) preprocessing time, if a polygonal subdivision of total size S(n), with cell complexity at most C(n) can be computed in time T(n), such that the order of the parts of the curves inside each cell has a monotone order with respect to at least one segment of the boundary of the cell. We call such a partitioning a curve-monotone polygonal subdivision.



There are no comments yet.


page 1

page 2

page 3

page 4


Dynamic Planar Convex Hull

In this article, we determine the amortized computational complexity of ...

Point Enclosure Problem for Homothetic Polygons

In this paper, we investigate the homothetic point enclosure problem: gi...

1D and 2D Flow Routing on a Terrain

An important problem in terrain analysis is modeling how water flows acr...

An Efficient Algorithm for Generalized Polynomial Partitioning and Its Applications

Guth showed that given a family S of n g-dimensional semi-algebraic sets...

Duality-based approximation algorithms for depth queries and maximum depth

We design an efficient data structure for computing a suitably defined a...

From a Modified Ambrosio-Tortorelli to a Randomized Part Hierarchy Tree

We demonstrate the possibility of coding parts, features that are higher...

A fast implementation of near neighbors queries for Fréchet distance (GIS Cup)

This paper describes an implementation of fast near-neighbours queries (...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

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].


  • 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:

  1. [label=()]

  2. 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.

  3. 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.

  4. 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.

  5. For disjoint rectangles, extend their edges until intersecting the boundary or the extension of an edge to create a set of disjoint rectangles.

  6. 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.

Figure 1: Four possible arrangements of bounding boxes and their subdivisions.
1:A set of curves
2:A subdivision of the plane such that the distances of in each cell can be uniquely defined.
3:for  do
4:     Break each curve into -monotone totally concave or totally convex parts.
5:end for
6:Build the arrangement of curves .
7:Connect the intersections and vertices using straight line segments.
8:Partition by drawing the bounding boxes of the curves in or the mutual tangents of the curves in when their bounding boxes intersect, except for the curves that are inside another curve.
9:Triangulate the cells of with complexity more than .
10:Store for each segment the list of curves inside cell intersecting it as along with the index of their adjacent cells.
11:return and
Algorithm 1 Curve-Monotone Subdivision

2.2 A Subdivision For Disks

Algorithm 2 computes a planar subdivision for a set of arbitrary disks.

1:A set of disks
2:A subdivision of the plane .
3:Build the arrangement of the disks .
4:Build the bounding box of the input, connect the intersections of the disks, their pairwise tangents and their centers to each other and to the boundary with straight lines.
5:Triangulate the cells of with complexity more than .
6:Store for each segment the list of curves inside cell intersecting it as along with the index of their adjacent cells.
7:return and
Algorithm 2 Subdivision for Disks

An example of the possible cases of Algorithm 2 is shown in Figure 2.

Figure 2: Four examples of the subdivisions of Algorithm 2 for a set of disks.

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.

1:A set of curves
2:A point location data structure augmented by a set of lists
3: Build a curve-monotone planar subdivision on .
4:Sort each list , based on their distances from the segment .
5: Build a point-location data structure on .
6:return and
Algorithm 3 Preprocessing

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.

Figure 3: The input curves in blue, and the finer partitioning of into (Algorithm 3).
1:A point , a point location data structure augmented by a set of lists
2:The cell of that contains
3: The output of point location of in .
5:for  the boundary of  do
6:      Binary search on the lists , using the polynomial’s equation to detect above/below to find the cell of the arrangement.
7:end for
8:return the only non-empty result in .
Algorithm 4 Query
Theorem 2.1

Algorithm 3 using Algorithm 1 for computing the subdivision has time complexity and space complexity .


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 .


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].


  • [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)