다각형에서 균일하게 임의의 점을 샘플링하고 싶습니다 ...
많은 수의 표본을 추출하는 경우 면적이 같은 경우 두 지역에 속할 가능성이 높습니다.
좌표로 [0,1]에 두 개의 난수를 사용할 것이기 때문에 정사각형이면 매우 간단합니다.
내가 가진 모양은 일반 다각형이지만 모든 다각형에서 작동하고 싶습니다.
/programming/3058150/how-to-find-a-random-point-in-a-quadrangle
다각형에서 균일하게 임의의 점을 샘플링하고 싶습니다 ...
많은 수의 표본을 추출하는 경우 면적이 같은 경우 두 지역에 속할 가능성이 높습니다.
좌표로 [0,1]에 두 개의 난수를 사용할 것이기 때문에 정사각형이면 매우 간단합니다.
내가 가진 모양은 일반 다각형이지만 모든 다각형에서 작동하고 싶습니다.
/programming/3058150/how-to-find-a-random-point-in-a-quadrangle
답변:
쉬운 방법 중 하나는 다각형의 경계 상자를 찾고 거부 샘플링을 사용하는 것입니다. 경계 상자에서 샘플을 가져 와서 다각형 내에 들어간 경우 수락합니다 . 적어도 확률로 발생합니다 (생각합니다).
다른 가능성은 다각형을 삼각 측량하는 것입니다. 먼저 비례 적으로 삼각형을 샘플링 한 다음 삼각형에서 임의의 점을 샘플링하십시오. 후자는 간단합니다. 변환을 세밀하게하기 위해 모든 삼각형은 입니다. 분포에서 점을 균일하게 샘플링하려면 먼저 밀도 에 따라 을 샘플링합니다 (즉, 균일 한 샘플링하고 계산합니다) ) 다음 균일하게 샘플링합니다 (즉, 균일 한 샘플링하고 계산합니다 ). 더 간단한 방법은 을 샘플링 하는 것입니다. 대체 가진 .
이것은 약간 미친 짓이지만 다각형이 매우 이상하더라도 잘 작동합니다.
Reimann 매핑 정리 를 사용하여 단위 디스크에서 다각형까지의 등각 맵을 찾아 의 하위 세트로 봅니다. 예를 들어 다음의 참조를 참조하십시오.
http://siam.org/pdf/news/1297.pdf
그런 다음 Metropolis-Hastings MCMC 샘플링 에서 제안 밀도로 디스크에 균일 한 밀도를 적용하십시오 .