这篇博客介绍了数学上如何在三角形内生成均匀随机点的方法。
在进行HairStrandPlugin的迭代过程中,有涉及到发丝间插值的需求。因此研究了一下在三角形内部进行均匀随机点的生成方法。
需求
现在有三个点 a,b,c 构成一个三角形。现在需要在这个三角形内部进行随机点的生成,当足够多的点被生成时,这些点在三角形内的分布需要为均匀分布。
思考
barycentric coordinates
在三角形内的任意一点 P ,都存在着
P=(1−u−v)a+ub+vc
因此最初的思考是直接对 u,v 在 0≤u,v≤1 与 0≤u+v≤1 取任意值。
可是这样一来无法达到均匀分布的需求,例如三角形最长的那条边上的点会分布的较为稀疏。
能够生成均匀随机点的方法
我在Graphic Gem Ⅰ中找到了两种可以生成均匀随机点的方法。
Method 1
令