如何从X开始生成欧几里德距离小于d的n个点

Sat*_*Okh 3 r euclidean-distance

假设我有一个观点: point <- c(1, 2) 如何从point低于某个选择值的位置生成欧几里德距离的10个点,例如3.换句话说:如何在我的点附近生成一组点?

Señ*_*r O 6

最直接的方法是随机选择0到3之间的距离,然后选择0到360之间的距离.以所需的精度执行此操作:

r <- 3 * sqrt(runif(10)) ##Since area increases proportionally to distance, as pointed out in comments
theta <- 2 * pi * runif(10)
Run Code Online (Sandbox Code Playgroud)

要获得坐标:

x <- point[1] + r * cos(theta)
y <- point[2] + r * sin(theta)
Run Code Online (Sandbox Code Playgroud)

  • 要从连续空间中进行采样,您应该:`r < - 3*runif(10)`和`theta < - 2*pi*runif(10)`. (3认同)
  • 要从该区域统一采样,您应该执行`r < - 3*sqrt(runif(10))`.在每种方法下用'n = 10000`绘制结果,以查看未转换的均匀`r`如何对中心进行过采样. (2认同)