使用R和tripack-package绘制仅有三个点的Voronoi图

时间:2015-11-05 17:48:59

标签: r

我尝试绘制三点的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)

这是一个错误吗?这有道理吗?根据我的理解,从三点构建Voronoi图表应该是完美的。

1 个答案:

答案 0 :(得分:5)

是的,这可能被认为是一个错误,因为the definition of Voronoi regions对于只有两个生成点的集合很有意义。

deldir 包(也实现了Delauney三角测量和Dirichlet(Voronoi)tesselation) 正确处理三个(和少至两个)生成器的集合点。

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