48、简单多边形中的可见性查询及应用

简单多边形中的可见性查询及应用

1. 可见性查询算法概述

在处理简单多边形中的可见性查询问题时,我们有一个查询时间为 (O(\log^2 n + |V (q)|)) 的算法。该算法接近最优,需要 (O(n^2 \log n)) 的预处理时间和 (O(n^2)) 的存储空间。与其他算法相比,其存储和预处理时间少了一个线性因子。此算法还可扩展用于计算可见性多边形的大小和回答锥形可见性查询。

直观上,查询点的可见性多边形计算步骤如下:
1. 将多边形内部划分为规范区域。
2. 在每个区域内构建可见性多边形。
3. 将这些区域的可见性多边形拼接起来。

2. 计算部分可见性多边形

假设多边形 (P) 被对角线 (e) 分为两部分 (L) 和 (R),我们要计算点 (q \in R) 在 (L) 中的部分可见性多边形 (V_L(q))。

对于任意两点 (p \in L) 和 (q \in R),(q) 能看到 (p) 当且仅当线段 (pq) 不穿过 (\partial P)。由于 (\partial P = (\partial L \setminus {e}) \cup (\partial R \setminus {e})),我们分别考虑:
- 定义可见性锥 (C_e(q)) :以 (q) 为顶点,由从 (q) 可见的 (e) 部分的端点界定的锥体。(pq) 不穿过 (\partial R \setminus {e}) 当且仅当 (p) 位于 (C_e(q)) 内。
- 定义外部可见性多边形 (EV_L(q)) :假设 (\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值