Как работает инструмент Создать произвольно расположенные точки (Create Random Points)

Инструмент Создать произвольно расположенные точки (Create Random Points) случайным образом располагает указанное число точек в окне экстента или внутри объектов полигонального, линейного или точечного классов объекта.

Первый шаг обработки – создание потока произвольных чисел с помощью генератора случайных чисел и основной точки. При создании произвольных точек в установленном экстенте, определяется произвольное значение на оси x и оси y экстента, оно станет координатами x и y для точки. Чтобы произвольно выбрать точку на оси x, необходимо выбрать следующее неиспользуемое значение в потоке произвольных чисел и преобразовать его в Равномерное распределение, где Минимум (Minimum) и Максимум (Maximum) – это минимальное и максимальное значения экстента x. То же самое делается для оси y. Два значения определяют первую произвольную точку. Этот процесс повторяется, пока не будет достигнуто заданное количество точек.

Чтобы произвольно разместить заданное количество точек в каждом полигоне, полигоны разделяются на части разных размеров с помощью стандартного алгоритма разделения полигонов на части. Вся площадь каждого полигона заполняется треугольниками. Чтобы поместить первую точку в первый полигон, произвольно выбирается один из треугольников в общем полигоне. Вероятность выбора конкретного треугольника зависит от размера треугольника. Чем больше треугольник, тем выше вероятность того, что он будет выбран. Две стороны треугольника станут двумя осями, из которых размещается произвольная точка. Как и в случае с опцией экстента, берется следующее неиспользуемое значение из произвольного потока, преобразуется в Равномерное распределение с помощью начальной точки оси треугольника (минимум) и конечной точки стороны (максимум). На оси произвольно выбирается значение. То же самое делается для другой оси или стороны треугольника. Для размещения точки используются два произвольных значения. Точка будет лежать в параллелограмме, созданном двумя осями треугольника. Если точка лежит на третьей стороне, определяющей треугольник, она выбирается. Если точка лежит вне треугольника, она будет лежать в другой половине параллелограмма. Так как это половина параллелограмма является зеркальным отражением определенного треугольника (отражением на третью сторону), точка отражается обратно в определенный треугольник. Этот процесс повторяется, пока в полигон не будет помещено определенное количество точек и повторяется для каждого полигона.