1
創建計算多邊形列表的面積和質心的函數(格式爲georgia.polys)。對於多邊形的面積的公式是R用於計算多邊形的面積和質心
其中,A是多邊形區域,xi是第i個多邊形邊界的x座標(X [i]於R),yi是第i多邊形邊界的y座標(R中的y [i]) - 並且n是用於指定多邊形邊界的點的數量。假設多邊形處於閉合狀態,以使xi和yi取與xn和yn相同的值。 質心座標爲(CX,CY)其中:
下面是已經創建的代碼,但林不知道的質心座標是正確的
library(GISTools)
data("georgia")
polyn<-function(x){
poly.df<-data.frame()
for(d in 1:159){
poly.d<-x[[d]]
n<-length(poly.d[,1])
i<-1
A.sum<-0
C.xsum<-0
C.ysum<-0
while(i<n){
A.area<-0.5*(poly.d[i,2]*poly.d[i+1,1]-poly.d[i+1,2]*poly.d[i,1])
A.sum<-A.sum+A.area
C.x<-(1/(6*A.sum))*(poly.d[i,2]+poly.d[i+1,2])*(poly.d[i,2]*poly.d[i+1,1]-poly.d[i+1,2]*poly.d[i,1])
C.xsum<-C.xsum+C.x
C.y<-(1/(6*A.sum))*(poly.d[i,1]+poly.d[i+1,1])*(poly.d[i,2]*poly.d[i+1,1]-poly.d[i+1,2]*poly.d[i,1])
C.ysum<-C.ysum+C.y
i<-i+1
}
poly.df<-rbind(poly.df, c(A.sum,C.xsum,C.ysum))
colnames(poly.df) <- c("Area", "Cx", "Cy")
}
poly.df
}
polyn(georgia.polys)
這是一些結果該功能,
Area Cx Cy
1 1326077000 4044403.4 4855396.03
2 891511462 -2237689.5 -2962558.41
3 740601936 10709355.7 12996988.27
有沒有人可以幫助我的代碼?