使用R中的方位角划分Voronoi单元

时间:2014-08-25 11:53:46

标签: r voronoi

我使用deldir R包为2D空间中的N个点生成了Voronoi曲面细分。

Voronoi Tesselation

现在我想根据给定的方位角将每个Voronoi单元划分为三个Voronoi单元:

Voronoi Azimuth

方位角作为输入。例如:方位角= 0表示一个区域应该用角度= 0到角度= 120的2条线分开。下一个区域按角度= 120到角度= 240,最后一个区域是剩余区域。

方位角是这个分离的北起始角度,总是跨越120度。更详细地说,从生成Voronoi的每个点开始,精确地绘制了三条线,将先前的Voronoi单元划分为三个Voronoi单元。

可以使用deldir包来实现吗?如果没有,任何人都可以建议延期吗?

1 个答案:

答案 0 :(得分:2)

我不知道这样做的任何简单/实施方式。但是,您可以尝试手动创建这些行。

我会尝试以下方式:

  1. 使用deldir()
  2. 访问voronoi多边形边缘的坐标
  3. 使用sp包
  4. 将坐标转换为线对象
  5. 创建从" center" -point到达绘图边界的线对象(根据方位角计算终点)
  6. 使用2中创建的线条查找3中创建的线条的交叉点(选中How to get the intersection point of two vector?
  7. 从原始点开始创建新(较短)行,并从步骤4检索到的交叉点结束。
  8. 绘制在5中创建的线条。
  9. 每个多边形的循环
  10. 这可能是一个非常笨拙的解决方案,但它是我能想到的唯一解决办法;)