创建随机点的工作原理

创建随机点工具可在指定的范围窗口内,或在面、线或点要素类的要素内部随机放置指定数量的点。

处理的第一步是使用随机数生成器和种子创建随机数流。 在指定范围内生成随机点时,会确定该范围 x 轴上的一个随机值和 y 轴上的另一个随机值,这两个值即构成一个点的 x 坐标和 y 坐标。 为了在 x 轴上随机选择点,将从随机数流中选择下一个未使用的值,并将其转换为一个均匀分布,该分布的最小值和最大值即为 x 范围的最小值和最大值。 y 轴也进行同样的操作。 这两个值确定了第一个随机点的位置。 重复此过程,直到生成指定数量的点。

若要在每个面内随机放置指定数量的点,会使用标准的面分区算法将面划分为多个不同大小的三角形。 每个面要素的整个区域均由这些三角形填充。 为了在第一个面中放置第一个点,会从该面的所有三角形中随机选择一个三角形。 选择特定三角形的概率受该三角形大小的影响。 三角形越大,被选中的概率就越高。 三角形的两条边成为放置随机点的两个轴。 与处理范围选项的情况一样,从随机流中获取下一个未使用的值,并使用三角形轴的起点作为最小值、边的终点作为最大值,将其转换为均匀分布。 在该轴上随机选择一个值。 对三角形的另一个轴或边进行同样的操作。 使用这两个随机值来放置一个点。 该点将落在由三角形的两个轴创建的平行四边形内。 如果该点落在定义该三角形的第三条边内,则该点被选中。 如果该点落在三角形外部,则会落在平行四边形的另一半内。 由于平行四边形的这一半是定义三角形的镜像(以第三条边为镜像轴),因此将该点镜像回定义三角形中。 重复此过程,直到在面中放置了指定数量的点,并对每个面重复此过程。