【发布时间】:2021-03-02 15:23:55
【问题描述】:
我目前正在编写一个 y 单调扫描线算法来对非凸多边形进行三角剖分。 实现这一点的第一步是使多边形 y 单调。
MakeMonotone 的伪代码来自“Mark de Berg 的计算几何”一书 (https://archive.org/details/computationalgeo00berg):
现在我的问题:
在那本书和我找到的所有其他网站中,没有解释如何对提到的“二叉搜索树 T”中的边缘进行精确排序。参考书中唯一提到的是“T的叶子的从左到右的顺序对应于边的从左到右的顺序”。但是通过什么属性/属性在该树中对边缘进行排序? 我也不清楚,二叉树中的边应该如何表示(起点?终点?两者的结合?)。
我最幼稚的方法是找出 T 中的所有边与扫描和线的交点,并计算它们中的哪一个最接近当前顶点。但是鉴于在每本书/大学幻灯片中,T 的内部工作都没有进一步解释,它一定更容易。
二叉搜索树应该支持以下操作:
- 插入新边
- 找到当前扫描线上顶点左侧的边
- 删除边
【问题讨论】:
-
书上说:对顶点的
y进行排序.. -
@YvesDaoust 这是为了扫荡,而不是状态。
标签: geometry polygon computational-geometry triangulation non-convex