7 research outputs found

    Planar Visibility: Testing and Counting

    Full text link
    In this paper we consider query versions of visibility testing and visibility counting. Let SS be a set of nn disjoint line segments in R2\R^2 and let ss be an element of SS. Visibility testing is to preprocess SS so that we can quickly determine if ss is visible from a query point qq. Visibility counting involves preprocessing SS so that one can quickly estimate the number of segments in SS visible from a query point qq. We present several data structures for the two query problems. The structures build upon a result by O'Rourke and Suri (1984) who showed that the subset, VS(s)V_S(s), of R2\R^2 that is weakly visible from a segment ss can be represented as the union of a set, CS(s)C_S(s), of O(n2)O(n^2) triangles, even though the complexity of VS(s)V_S(s) can be Ξ©(n4)\Omega(n^4). We define a variant of their covering, give efficient output-sensitive algorithms for computing it, and prove additional properties needed to obtain approximation bounds. Some of our bounds rely on a new combinatorial result that relates the number of segments of SS visible from a point pp to the number of triangles in ⋃s∈SCS(s)\bigcup_{s\in S} C_S(s) that contain pp.Comment: 22 page

    Efficient computation of query point visibility in polygons with holes

    No full text
    In this paper, we consider the problem of computing the visibility polygon of a query point inside polygons with holes. The goal is to perform this computation efficiently per query with more cost in the preprocessing phase. Our algorithm is based on solutions in [12] and [13] proposed for simple polygons. In our solution, the preprocessing is done in time O(n 3 log(n)) to construct a data structure of size O(n 3). It is then possible to report the visibility polygon of any query point q in time O((1 + h β€²)log n + |V (q)|), in which n and h are the number of the vertices and holes of the polygon respectively, |V (q) | is the size of the visibility polygon of q, and h β€² is an output and preprocessing sensitive parameter of at most min(h, |V (q)|). This is claimed to be the best query-time result on this problem so far
    corecore