我尝试绘制三点的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图表应该是完美的。
答案 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)