使用R和tripack包绘制仅包含三个点的Voronoi图

4

我试图绘制三个点的Voronoi图:

library(tripack)
x<-c(1.7,-2.2,0.5)
y<-c(-0.6,-0.2,0.8)
v<-voronoi.mosaic(x,y)
plot(v)

然而,它只显示了一个空的图形。
print(v)

提供:

voronoi mosaic:
nodes: (x,y): neighbours (<0: dummy node)
1: (-0.3238956,-1.120482): -1 -2 -3 
dummy nodes: (x,y)
1: (-0.3238956,-1.120482)
2: (-0.3238956,-1.120482)
3: (-0.3238956,-1.120482)

这是一个 bug 吗?这个有意义吗?在我看来,从三个点构建 Voronoi 图应该没有问题。

1个回答

5
是的,这可以被认为是一个错误,因为 Voronoi 区域的定义对于仅具有两个生成器点的集合也是有意义的。 deldir包(它还实现了Delauney三角剖分和Dirichlet(Voronoi)镶嵌)确实正确处理具有三个(事实上仅有两个)生成器点的集合。
library(deldir)
x <- c(1.7,-2.2,0.5)
y <- c(-0.6,-0.2,0.8)

par(mfcol=c(1,2))
plot(deldir(x, y), asp=1)
plot(deldir(x[1:2], y[1:2]), asp=1)

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接