“创建随机点”的工作原理

创建随机点可将指定数量的点随机放置在范围窗口中或面、线或点要素类中。

处理的第一步是通过随机数生成器和种子创建随机数数据流。在指定范围内生成随机点时,将在 x 轴和 y 轴上分别标识该范围的随机值,这些值将成为点的 x 坐标和 y 坐标。如果要在 x 轴上随机选择点,则将选择随机数数据流中下一个未使用的值并将其变换为“均匀”分布,其中最小值和最大值分别为 x 范围的最小值和最大值。对 y 轴执行相同的操作。所得到的这两个随机值将标识第一个随机点。此过程将重复执行,直到达到指定的点数。

要在每个多边形中随机放置指定数量的点,将使用标准的多边形分区算法按照大小不同的三角形来划分多边形。每个多边形的完整区域都用三角形进行填充。要在第一个多边形中放置第一个点,将随机选择整个多边形中的一个三角形。特定三角形被选中的概率受到三角形大小的影响。三角形越大,被选中的概率就越高。三角形的两条边将变成放置随机点时所依据的两个轴。与使用范围选项时一样,下一个未使用的值将从随机流中获取并被变换为“均匀”分布,其中三角形轴的起点作为最小值,边的终点作为最大值。在轴上随机选择一个值。对三角形的另一个轴或边执行相同的操作。所得到的这两个随机值将用于放置点。点将落在由三角形的两个轴所创建的平行四边形内。如果点落在用于定义三角形的第三条边上,则选择该点。如果点落在三角形外部,它将落在平行四边形的另一半内。由于平行四边形的这一半是定义的三角形的镜像图像(基于第三条边镜像),因而该点会被镜像回定义的三角形内。此过程将重复执行,直到指定数量的点均被放置在多边形内,并且对每个多边形均重复此过程。

9/15/2013