dsg*_*dsg 13 algorithm geometry numerical-methods sampling
假设你有一个顶点的三角形任意A,B和C.本文(第4.2节)说,你可以通过以下顶点的凸组合P从三角形内均匀地生成一个随机点ABC:
P = (1 - sqrt(r1)) * A + (sqrt(r1) * (1 - r2)) * B + (sqrt(r1) * r2) * C
Run Code Online (Sandbox Code Playgroud)
在哪里r1和r2均匀地绘制[0, 1],并且sqrt是平方根函数.
你如何证明在三角形内均匀分布的采样点ABC?
编辑
正如在mathoverflow问题的评论中所指出的, Graphical Gems讨论了这种算法.
小智 10
你有一个从单位正方形到三角形的地图P(r1,r2).均匀地选择r1和r2给出单位平方中的随机点.三角形中的图像根据地图P的雅可比行列式分布,其结果是常数.因此图像分布也是均匀的.
实际上,为了验证这一点,你只需要检查它的三个非共线点A,B,C.仿射线性映射具有恒定的雅可比矩阵,因此您可以应用其中一个将任意三元组移动到此标准位置而不影响分布.
最后,关于"为什么"的一个词:考虑由平行于BC侧的线段填充的三角形.在P的公式中,变量r1选择点将位于哪个段上,而r2确定它将沿着段的位置.为了均匀性,给定段上的所有点应该被平等对待(因此在r2中是线性的).但是对于r1,由于某些段比其他段短,我们需要支持长段以获得均匀分布.公式中的sqrt(r1)说明了这一点.