我使用 deldir
R 包为 2D 空间中的 N 个点生成了 Voronoi 曲面分割。
现在我想根据给定的方位角将每个 Voronoi 单元分成三个 Voronoi 单元,如下所示:
方位角作为输入给出。例如:方位角 = 0 表示一个区域应以角度 = 0 到角度 = 120 的 2 条线分隔。下一个区域是角度 = 120 到角度 = 240 的区域,最后一个区域是余数。
方位角是该分离从北开始的角度,并且始终跨越 120 度。更详细地说,从每个点生成 Voronoi,精确地绘制三条线,将先前的 Voronoi 单元划分为三个 Voronoi 单元。
这可以使用 deldir
包来实现吗?如果没有,有人可以建议延期吗?
最佳答案
我不知道有什么简单/实现的方法可以做到这一点。但是,您可以尝试手动创建这些行。
我会尝试一些类似的事情:
- 使用 deldir() 访问 voronoi 多边形的边坐标
- 使用 sp 包将坐标转换为线对象
- 创建从“中心”点到绘图边界的线条对象(根据方位角计算端点)
- 查找 3 中创建的直线与 2 中创建的直线的交点(检查 How to get the intersection point of two vector? )
- 创建新的(较短的)线,从原始点开始,到第 4 步中检索到的交点结束。
- 绘制第 5 步中创建的线条。
- 循环每个多边形
这很可能是一个非常笨拙的解决方案,但这是我能想到的唯一解决方法;)
关于r - 使用 R 中的方位角划分 Voronoi 单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25485322/