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

创建随机点可将指定数量的点随机放置在标识的区域内。标识的区域可以是某个指定的范围,也可以位于一个或几个多边形内。

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

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


7/10/2012