9

我有散布在二维欧几里得空间中的点云。我想计算连接云的最极端(=外围)点的多边形内的区域。换句话说,我想估计一下这个空间里云所覆盖的面积。R中有公式吗?非常感谢朱利安的任何回复

4

1 回答 1

16

这称为凸包问题;R 内置chull函数应该可以完成这项工作。要计算面积,您可以使用此处的公式。

编辑:更好;splancs包有areapl功能。所以解决你的问题的函数应该是这样的:

cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}

例如:

library(splancs);
x<-rnorm(20);rnorm(20)->y;
#Some visualization
i<-chull(x,y);plot(x,y);polygon(x[i],y[i]);
#The area
cha(x,y);
于 2010-09-08T22:15:04.837 回答