18

假设您有一个任意三角形,其顶点A为 、BC这篇论文(第 4.2 节)说,您可以通过以下顶点的凸组合P从三角形内均匀地生成一个随机点 :ABC

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

其中r1r2是从 中统一绘制的[0, 1]sqrt是平方根函数。

您如何证明在三角形内均匀分布ABC的采样点是合理的?

编辑

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

4

1 回答 1

12

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

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

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

于 2011-01-24T03:13:02.707 回答