Skip to content

模型Model

平面点定位问题

施工中 · 内容逐步修订

Planar point location

预处理平面直线细分后,查询点所在面并规定边界退化语义。

形式陈述 ​

模型 ​

在计算几何中,本页的层级构造先取平面嵌入图的有限直线段细分,规模 n 计顶点、边与面记录总数:边只在共享端点相交,面由几何嵌入而非抽象图单独决定。预处理后,查询点 q 返回包含它的面。若 q 落在边或顶点上,本文返回所有相邻面;实现也可固定优先规则,但构建与查询必须采用同一约定。

地图行政区落点是典型实例。Point-in-polygon 只对一个多边形判断内外;point location 对共享边的全部面统一预处理。三角剖分、单调细分和一般细分可采用不同结构,复杂度不能只写一个“二分搜索”概括。

Kirkpatrick 预处理 ​

先把 subdivision 三角剖分,并包在一个严格包含原有全部有限线段的固定外三角形内。保留原面、原边与原顶点的标识,外三角形的三个顶点不参加删除。每轮在当前平面图中选择一组互不相邻的低度顶点,删除它们,再把留下的多边形洞重新三角化。被删顶点互不相邻,使各重三角化区域不会互相干扰;低度则限制新旧三角形之间的覆盖数。

具体地,由平面图 Euler 边数界与握手引理,含 N 个顶点的简单平面三角网满足度数和小于 6N,故度数至少 12 的顶点少于一半。去掉三个外顶点后,在 N≥12 时仍有至少 N/4 个度数至多 11 的候选。反复选一个候选,并从候选表中删去它及其邻居,每次至多删去 12 个,因而可选至少 N/48 个互不相邻顶点。规模小于 12 后,余下处理是常数工作。这证明每轮可删去常数比例顶点。层数因此为 O(log⁡n);各层规模形成几何级数,总三角形与跨层指针为 O(n)。

每个粗层三角形只记录与下一细层具有二维内部重叠的三角形;相同未改变的三角形也保留一条对应链接。不能把只在边或顶点接触也算进候选,否则一个未删的高阶顶点就可能带来许多无关三角形。每份局部洞至多涉及常数个旧三角形,所以这些候选数量有统一常数界。这个常数候选性质来自低度删除及局部重三角化,不是“递归层级”四个字自动带来的。

查询状态演化 ​

若查询点在外三角形之外,直接返回原细分的唯一无界面;其余查询从最粗层外三角形开始。假设当前三角形为 τi,只测试它指向的细层候选,任选一个闭三角形包含 q 的 τi−1,直到最细三角网。粗三角形由这些候选的闭包覆盖,因此即使 q 在边界上也能继续;无需沿所有并列候选分叉。每层做常数次三角形包含测试,定位时间为 O(log⁡n);若接口要返回边界点的全部 k 个相邻面,总时间为 O(log⁡n+k)。

例如地图点先落在覆盖整个城区的粗三角形;下一层候选只来自该三角形覆盖的几个街区三角形;继续下降后定位到两条道路与河岸围成的原始面。查询不会在每层重新扫描整张地图,状态只有当前三角形及其候选表。

预处理接口应保存原三角形到 subdivision 面的映射,因为输入面可能被对角线拆成多个三角形。最后一步返回的是原面标识,而非任意一个内部三角形编号。若查询点恰为最细三角形的原顶点,则读取该顶点预存的、去重后的 incident-face 列表;若在原边内部,则读取其一侧或两侧的不同原面。辅助对角线与新增外框不应被误报成原细分边界。全部去重列表的总长度为 O(n),输出的 k 个不同面另花 O(k),即使许多桥都邻接同一个面也不必重复扫描它们。

直觉

Kirkpatrick 层级反复删去一批互不相邻的低度顶点,把细分压成几何级缩小的粗图。低度与独立性保证一个粗三角形只覆盖常数个下一层候选,因此查询只携带当前三角形逐层下降,而不用在每层重新搜索整张平面图。

例子与边界

边界谓词 ​

三角形包含测试由方向测试组成。查询点恰在行政边界时,orientation(a,b,q)=0 必须进入专门分支:到最细层后,落在原边内部时读取其相邻原面;落在原顶点时枚举预存的去重 incident-face 列表。若浮点把零误算为正,后续细层没有全局校验替它纠正。

实现可用精确整数谓词、自适应精度算术或一致的 symbolic perturbation。应同时报告构建时间、空间、查询时间和计算模型;“线性空间、对数查询”不表示任意退化坐标在普通浮点上都安全。

推论与应用

结构边界 ​

若删除集不是独立,两个重三角化洞可能重叠,跨层关系不再局部;若允许无界度顶点进入删除集,一个粗三角形可能对应过多细候选。动态插边或移动顶点会改变多层三角剖分,静态 Kirkpatrick 结构不直接支持这种更新。

已知有界查询窗口内的 Voronoi 最近邻可先把图裁到窗口,再用点定位查询所属单元;距离语义来自 Voronoi 图。全平面 Voronoi 图含无界射线,外框之外通常有多个单元,不能直接沿用本页有限线段版本的“框外只有一个原面”分支;需要额外的无界区域搜索。

给定已三角化的有序嵌入表示后,层级构建可在线性时间完成;一般细分还要计入初始三角化,标准总预处理界为 O(nlog⁡n)。这些算术操作界假定坐标与方向比较为单位成本。

参考资料
  • David Kirkpatrick,Optimal Search in Planar Subdivisions,SIAM J. Comput. 12(1),1983,§3 Lemmas 3.1–3.3 与 §4:低度独立集、常数候选层级,以及一般细分的初始三角化。
  • de Berg et al., Computational Geometry: Algorithms and Applications, 3rd ed., Springer, 2008, point location.
关系图谱6 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系