问题 三角形中的随机点样本[关闭]


假设您有一个带顶点的任意三角形 AB,和 C本文(第4.2节) 说你可以生成一个随机点, P,均匀地从三角形内部 ABC 通过以下顶点的凸组合:

P = (1 - sqrt(r1)) * A + (sqrt(r1) * (1 - r2)) * B + (sqrt(r1) * r2) * C

哪里 r1 和 r2 均匀地从中抽取 [0, 1],和 sqrt 是平方根函数。

你如何证明采样点是正确的 均匀分布 在三角形内 ABC

编辑

正如评论中指出的那样 mathoverflow问题Graphical Gems讨论了这种算法


2961
2018-01-24 02:47


起源

这可能更适合 math.stackexchange.com - Null Set
math.stackexchange.com/questions/18686/... - dsg
我认为它非常适合SO。投票重新开始。数值方法非常适合这里,如果你要做像蒙特卡罗这样的事情,那么最好确保你可以证明你的假设是正确的。 - Dr. belisarius
@belisarius:问题不是关于数值方法,而是关于数学证明。我不认为这完全偏离主题,但我认为它现在更具主题。 - Sven Marnach
@Sven你可能是对的,但我看到SO的范围每天都在缩小。我担心在不久的将来,唯一有效的主题将是一些语法问题和众所周知的算法的应用。感谢您的意见。 - Dr. belisarius


答案:


你有一个从单位正方形到三角形的地图P(r1,r2)。均匀地选择r1和r2会给出单位平方中的随机点。三角形中的图像根据地图P的雅可比行列式分布,其结果是常数。因此图像分布也是均匀的。

实际上,为了验证这一点,你只需要检查它的三个非共线点A,B,C。仿射线性映射具有恒定的雅可比矩阵,因此您可以应用其中一个将任意三元组移动到此标准位置而不影响分布。

最后,关于“为什么”的一个词:考虑由平行于BC侧的线段填充的三角形。在P的公式中,变量r1选择点将位于哪个段上,而r2确定它将沿着段的位置。为了均匀性,给定段上的所有点应该被平等对待(因此在r2中是线性的)。但对于r1,由于某些段比其他段短,我们需要支持长段以获得均匀分布。公式中的sqrt(r1)说明了这一点。


10
2018-01-24 03:13



sqrt(r1)如何解释线段长度的变化? - dsg