多边形中查询点的可见多边形查询算法解析
在计算几何领域,查询多边形内某点的可见多边形是一个重要的问题。本文将详细介绍两种不同情况下的查询算法,分别适用于无洞多边形和有洞多边形。
1. 无洞多边形的可见多边形查询算法
对于无洞的简单多边形,我们可以使用Bose等人提出的算法来查询查询点 $q$ 的可见多边形 $V(q)$。该算法的查询时间复杂度为 $O(\log n + k)$,其中 $k$ 是 $V(q)$ 的顶点数。不过,它需要 $O(n^3 \log n)$ 的预处理时间和 $O(n^3)$ 的空间。
1.1 算法步骤
- 步骤1:计算顶点的可见多边形 :使用Lee的算法计算多边形 $P$ 中每个顶点 $v_j$ 的可见多边形 $V(v_j)$,并将所有构造边组成集合 $W$。
- 步骤2:构建平面细分 :使用Edelsbrunner的算法,根据集合 $W$ 中的构造边计算平面细分 $C$。
- 步骤3:构建定位数据结构 :使用Kirkpatrick的算法,为平面细分 $C$ 构建用于定位查询点的的数据结构。
- 步骤4:计算可见多边形 :对于平面细分 $C$ 中的每个可见单元 $c_i$,选取一个点 $q_i$,并使用Lee的算法计算 $V(q_i)$。
- 步骤5:查询处理 :
- 步骤5a :定位包含查询点
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



