我想在多边形中采样均匀一致的点...
如果采样大量,则如果它们具有相同的面积,它们将很可能落入两个区域。
如果它是一个正方形,这将是非常简单的,因为我将[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
Answers:
一种简单的方法是找到多边形的边界框并使用剔除采样:从边界框采样并接受其是否落入多边形内(发生概率至少为)(我认为)。
另一种可能性是对多边形进行三角剖分。首先以比例方式对三角形进行采样,然后对三角形中的随机点进行采样。后者很简单:在进行仿射变换之前,所有三角形的形式均为。要从该分布均匀采样一个点,首先根据密度采样(即采样均匀并计算),然后均匀地对采样(即对均匀采样并计算)。一个更简单的方法是将样品,如果 ÿ∈[0,1-X]小号∈[0,1]ÿ=(1-X)小号X,ÿ∈[0,1]X+Ý>1(X,Ý)(1-X,1-y)用替换。
这有点疯狂,但是即使您的多边形非常怪异,也应该可以正常工作。
使用Reimann映射定理找到从单位圆盘到多边形的共形图,将其视为的子集。参见,例如:
http://siam.org/pdf/news/1297.pdf
然后使用光盘上均匀密度的前馈作为Metropolis-Hastings MCMC采样中的建议密度。