2014-09-04 3 views
1

R 패키지의 일부 기능을 사용하여 영역을 계산하는 방법을 배우려합니다. areapl()은 내가 splancs 패키지에서 발견 한 첫 번째 패키지입니다. 나는이 areapl(m)을하려고 할 때, 그러나 그것은 대답으로 나에게 일을 제공 R에서 이해할 수없는 areapl() 함수의 일부

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[1:5,])areapl(m[6:10,])의 합계가 두 영역의 차이가 아니라 3이어야합니다.

이 기능의 작동 방식을 이해하는 사람이 있습니까?

많은 도움을 주셔서 감사합니다.

+1

폴리곤의 면적을 계산할 때 폴리곤의 면적을 계산하면 폴리곤이 ** 자동 교차 **하는 경우 해당 지역이 정확하지 않습니다 ** – thelatemail

+0

자기 교차하면 중복되는가요? 한 플롯에 두 개의 영역이있는 한 다른 옵션을 시도했는데 결과가 올바르지 않습니다. – Lambo

+1

폴리곤이 다시 그 자체로 두 배가됩니다. 예를 들어, 영역을 제공하는 것과 같은 모양을 정의 할 수 있습니다 'x <- c (1,0,0,1,1,3,3,1,1); y <- c (0,0,1,1,0,0, -1 , -1,0); ' – thelatemail

답변

3

주고있는 점수의 순서 (시계 방향 또는 반 시계 방향)를 유지해야합니다. 시도 :

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

나는 splancs을 설치하지 않았으므로 테스트하지 않았습니다. 그러나 다른 폴리곤 라이브러리와 함께 테스트 했으므로 문제가 될 것이라고 확신합니다. 첫 번째 다각형의 점을 시계 방향으로, 두 번째 점의 점을 반 시계 방향으로 제공했습니다. 조심해라. 그러면 너 괜찮을거야.