areapl()函数中的一些东西,我在R中无法理解

时间:2014-09-04 04:17:38

标签: r polygon area

我正在尝试学习如何使用R包中的一些函数来计算区域。 areapl()是我在splancs包中找到的第一个x <- c(1,0,0,1,1,1,1,3,3,1) y <- c(0,0,1,1,0,0,-1,-1,0,0) m <- cbind(x, y) plot(m, type="b") areapl(m) areapl(m[1:5,]) areapl(m[6:10,]) 。帮助文件末尾有一个示例:

areapl(m[1:5,])

显然areapl(m[6:10,])areapl(m)的答案是我们所期望的,但是当我尝试这个areapl(m[1:5,])时,它给出了1作为答案。我所期望的是areapl(m[6:10,])和{{1}}的总和应该是3而不是两个区域的差异。

任何人都可以帮我理解这个功能是如何工作的吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您必须保留所给点的顺序(顺时针或逆时针)。尝试:

   x[6:10]<-x[10:6]
   y[6:10]<-y[10:6]
   m <- cbind(x, y)
   areapl(m)

我没有安装splancs并且没有对其进行测试。但是,我用其他多边形库测试了它,所以我很确定这就是问题所在。您顺时针提供了第一个多边形的点,逆时针提供了第二个多边形的点。试试你是否一致,你应该没事。