17、切线可见性图的计算方法

切线可见性图的计算方法

在几何计算和路径规划领域,计算多边形内的切线可见性图是一个重要的问题,它对于求解欧几里得最短路径等问题具有关键作用。下面将详细介绍在不同情况下(凸洞和非凸洞)计算切线可见性图的算法。

1. 凸洞情况:O(n + h² log h) 算法

在一个包含 h 个凸洞、总共 n 个顶点的凸多边形 P 中,我们可以使用 Rohnert 提出的算法来计算切线可见性图。这个图包含了计算多边形 P 内两点 s 和 t 之间欧几里得最短路径 SP(s, t) 所需的所有相关边。

1.1 切线的定义

如果一条直线通过两个不同凸洞上的顶点 vi 和 vj,且该直线仅在 vi 和 vj 处与洞相交,那么线段 vivj 就被称为这两个凸洞之间的切线。对于最短路径 SP(s, t) = (s, u1, …, uk, t),有以下三个特点:
- su1 是从 s 到某个凸洞顶点 u1 的切线;
- ukt 是从 t 到某个凸洞顶点 uk 的切线;
- 对于任意边 uiui+1,它要么是凸洞的边,要么是两个凸洞之间的切线。

1.2 切线可见性图的定义

设 G 是多边形 P 的部分可见性图,其中 s、t 和 P 中所有洞的顶点都表示为 G 中的节点。当且仅当以下两个条件同时满足时,两个节点 wi 和 wj 之间存在一条边:
- wi 和 wj 对应的顶点在 P 中相互可见;
- 线段 wiwj 在 P 中对应的线段是 P 的边、两个凸洞之间的切线,或者是从 s 或 t 到某个凸洞的切线。

将 P 中这些边和切线的长度作为权重分配给 G 中对应的边。由于两

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值