2013-02-24 1 views
1

2D에서 주어진 영역의 경계에서 점을 결정하는 좋은 방법은 무엇입니까?2D에서 주어진 영역의 경계에있는 점을 결정하십시오.

두 개의 좌표 목록 인이있는 중첩 목록이 있다고 가정 해 보겠습니다.

 { {x1,y1}, {x2,y2}, {x3,y3} } 

물론 실제 중첩 목록은 평면의 주어진 영역과 관련된 3보다 많은 포인트를 갖습니다. 예를 들어, 중첩 목록은 평면에서 디스크를 판별 할 수 있습니다. 그런 다음 출력은 원에 해당하는 중첩 목록이어야합니다.

가능한 음모에 이미지 인식 물건을 적용하고 싶지 않습니다. 중첩 목록에 대한 작업을 원합니다.

+2

은 어떤 이유로 볼록 선체 알고리즘이 작동하지 않습니다가요? 오목한 선체 알고리즘은 어떨까요? – andand

답변

2

이 답변은 @andand comment를 기반으로합니다. 신용은 모두 그의 것입니다. 나는 2 차원 좌표의 목록과 "지역"라는 중첩 된 목록이있는 경우

, 나는 우리의 인덱스를 제공한다 "볼록 포를"이

Needs["ComputationalGeometry`"] 
    regionhull = ConvexHull[ region ] 

를 작성하는 "볼록 선체를"얻을 그러나 것 중첩 목록 내의 목록은 반 시계 방향으로 영역의 볼록한 경계에 해당합니다. 따라서 필요한 출력을 내려면 다음 단계가 필요합니다.

regionboundary = region[[ regionhull ]] 

그래도이 대답은 불완전합니다. "오목한 선체"알고리즘이 좀 더 일반적인 해결책이 될 것 같습니다. Mathematica의 오목한 선체에 대해 아는 사람이 있습니까? 나는 그것에 대한 추가 질문을 게시 할 수 있습니다. 이하

, I는 그림

에서 발견되는 "계산 기하학 패키지"에 대한

https://gis.stackexchange.com/questions/1200/concave-hull-definition-algorithms-and-practical-solutions

enter image description here

튜토리얼 추출 요철 선체 알고리즘을 이해 보여 http://reference.wolfram.com/mathematica/ComputationalGeometry/tutorial/ComputationalGeometry.html

** 부록 **

"alphahull"패키지는 오목한 영역의 경계를 찾는 문제를 해결할 수 있습니다. 그 설명은 여기에서 발견된다 :

http://cran.r-project.org/web/packages/alphahull/vignettes/alphahull.pdf

+0

저장소의 패키지 alphahull : http://cran.r-project.org/web/packages/alphahull/ – fcpenha

관련 문제