Я хочу создать двумерный набор из N точек (обычно 1e2 - 1e4) в квадрате со следующими ограничениями:
между всеми точками должно быть минимальное расстояние (зона отчуждения жесткого сердечника)
количество точек, заполняющих квадрат, указано заранее (или приблизительная оценка), так как я хочу получить фиксированную плотность (при необходимости я могу потом немного изменить размер квадрата).
узор должен быть достаточно "случайным"
предпочтительнее быстрое решение
Раньше я использовал rStrauss в пакете spatstat, но я никогда не мог понять, как надежно получить заданное количество баллов, и довольно часто функция останавливала мою машину на 10 минут, предположительно из-за слишком сложной задачи. Я предполагаю, что для этого может быть более подходящая функция.
## regular grid of 1e2 points in [-10, 10]^2
xy = expand.grid(x=seq(-10, 10, length=10), y=seq(-10, 10, length=10))
N = NROW(xy)
РЕДАКТИРОВАТЬ: как предлагается в ответе
xyr = rSSI(r=0.1, N, win = owin(c(-10,10),c(-10,10)), N)
plot(xyr)