다각형의 중심은 정확히 어떻게 계산됩니까?


10

QGIS 형상 도구-> 다각형 중심이 점 좌표를 얼마나 정확하게 계산하는지 알고 싶습니다. 예를 들어 다각형의 경계선을 작은 점으로 나누고 최대 거리를 가진 두 점 (길이와 너비)의 두 쌍을 취하고이 두 선의 교차점을 중심으로 사용합니까?

답변:


13

QGIS가 JTS 포트 인 GEOS를 사용하여 중심을 계산하는 경우 알고리즘은 http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html 입니다. 이론에 대해서는 javadoc에 http://www.faqs.org/faqs/graphics/algorithms-faq/ 링크가 있습니다. 섹션 2.02 : 다각형의 중심을 어떻게 계산할 수 있습니까?를 참조하십시오.

다각형의 중심 (일명 질량 중심 또는 무게 중심)은 다각형 파티션의 중심 중심을 삼각형으로 가중 한 합으로 계산할 수 있습니다. 삼각형의 중심은 단순히 3 개의 꼭짓점의 평균입니다. 즉 좌표 (x1 + x2 + x3) / 3 및 (y1 + y2 + y3) / 3입니다. 이것은 다각형을 먼저 삼각 측량 한 다음, 각 삼각형의 면적에 의해 가중치가 부여되고, 총합은 총 다각형 면적에 의해 정규화 된 각 삼각형의 중심의 합을 형성하는 것을 제안합니다. 실제로 작동하지만 더 간단한 방법이 있습니다. 삼각 측량은 파티션 일 필요는 없지만 다각형 영역을 계산할 때 사용되는 양수 및 음수 영역이있는 양수 및 음수 삼각형을 사용할 수 있습니다. 이것은 부호있는 영역에 가중치를 둔 삼각형 중심의 합계를 기반으로 중심을 계산하기위한 매우 간단한 알고리즘으로 이어집니다. 삼각형은 고정 점, 예를 들어 다각형의 꼭짓점 v0 및 다각형의 연속 가장자리의 두 끝점 (v1, v2), (v2, v3) 등으로 형성된 삼각형으로 간주 할 수 있습니다. 정점이 a, b, c 인 삼각형의 식은 (b [X]-a [X]) * (c [Y]-a [Y])-(c [X]-a [X]의 절반입니다. ) * (b [Y]-a [Y]);

Code available at ftp://cs.smith.edu/pub/code/centroid.c (3K).
Reference: [Gems IV] pp.3-6; also includes code.

그 방법이 정확한 것 같습니다. 좌표 값 사용 방법을 확인하고 반올림 오류 등이있을 수있는 경우 JTS 또는 GEOS의 소스 코드를 살펴볼 수 있습니다.


1
그냥 다른 몇 가지 링크 : gdal.org/python/osgeo.ogr.Geometry-class.html#Centroid GDAL가에 desribed GEOS 방법을 사용하는 노트 geos.osgeo.org/doxygen/classgeos_1_1algorithm_1_1Centroid.html을 . QGIS는 백그라운드에서 GDAL 기능을 사용합니다.
AndreJ

2
이 방법은 매우 작은 다각형에만 정확합니다. 큰 사람들에게는 지구가 평평하지 않다는 문제가 발생합니다.
피터 테일러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.