R 使用 runifpoint 函数生成有条件的点

R generate points with condition using runifpoint function

我正在尝试在矩形中生成随机分布的点。

为了在矩形中创建 50 个随机点,我使用了

i=50
  pp<-runifpoint(i, win=owin(c(0,19.5),c(0,3.12))

如果我在随机生成点之前在坐标上添加条件,

例如0.24

最终目标是在除灰色阴影区域以外的矩形中生成点,如下图

这是关于R包的问题spatstat

参数 win 指定将在其中生成点的空间区域。在您的示例中,您已将此区域指定为矩形。您只需将此矩形替换为您希望生成点的区域。

您可以通过多种方式构建空间区域(class owin 的对象)。有关概述,请参阅 help(owin)help(spatstat)

在您的示例中,您可以通过组合几个矩形来构建形状。例如,要制作一个简单的十字形,我可以只写

require(spatstat)
A <- owin(c(-1,1), c(-4, 4))
B <- owin(c(-4,4), c(-1,1))
U <- union.owin(A, B)
plot(U)

另一种方法是指定多边形的角并使用 W <- owin(poly=p),其中 p = list(x, y) 包含角的坐标,按逆时针顺序列出,不重复。参见 help(owin)

the spatstat book 的第 3.5 节也对此进行了介绍。您可以免费下载第3章。