Let $\mathcal{A}$ be a set of straight lines in the plane (or planes in $\mathbb{R}^3$). The $k$-crossing visibility of a point $p$ on $\mathcal{A}$ is the set $Q$ of points in the elements of $\mathcal{A}$ such that the segment $pq$, where $q\in Q$, intersects at most $k$ elements of $\mathcal{A}$. In this paper, we present algorithms for computing the $k$-crossing visibility. Specifically, we provide $O(n\log n + kn)$ and $O(n\log n + k^2n)$ time algorithms for sets of $n$ lines in the plane and arrangements of $n$ planes in $\mathbb{R}^3$, which are optimal for $k=\Omega(\log n)$ and $k=\Omega(\sqrt{\log n})$, respectively. We also introduce an algorithm for computing $k$-crossing visibilities on polygons, which achieves the same asymptotic time complexity as the one presented by Bahoo et al. The techniques proposed in this paper can be easily adapted for computing $k$-crossing visibilities on other instances where the $(\leq k)$-level is known.
翻译:设$\mathcal{A}$为平面中的一组直线(或$\mathbb{R}^3$中的一组平面)。点$p$在$\mathcal{A}$上的$k$-交叉可见性是$\mathcal{A}$元素中满足以下条件的点$q$构成的集合$Q$:线段$pq$(其中$q\in Q$)至多与$\mathcal{A}$的$k$个元素相交。本文提出了计算$k$-交叉可见性的算法。具体而言,对于平面中的$n$条直线集合,我们给出时间复杂度为$O(n\log n + kn)$的算法;对于$\mathbb{R}^3$中的$n$个平面排列,我们给出时间复杂度为$O(n\log n + k^2n)$的算法,这两种算法分别在$k=\Omega(\log n)$和$k=\Omega(\sqrt{\log n})$时达到最优。此外,我们还引入了一种计算多边形上$k$-交叉可见性的算法,其渐近时间复杂度与Bahoo等人提出的算法相同。本文提出的技术可便捷地推广至其他已知$(\leq k)$-水平结构的情形,用于计算$k$-交叉可见性。