javascript - 如何在二维中心点周围放置点?

标签 javascript php mysql 2d point

我被困在这个问题上: 我有一个从坐标 -200,-200(左上)到 200,200(右下)的二维空间。

现在我想在中心 (0,0) 的随机位置添加一个点。 到目前为止,一切都很好。只需为每个 x 和 y 选择一个从 -200 到 200 的随机数。

现在应该重复此操作,直到我获得所需的点数。

但是现在有两个问题:

  1. 我不希望两个点位于同一位置。有没有比测试每个点并在必要时重复整个过程更简单快捷的方法?

  2. 我不希望这些点立即散布在整个 map 上。他们应该聚集在中心,只有在中心周围最大的点“环”中只剩下一些空间时才离开。
    但是这些点之间应该不时有一些空白.

最后一个条件是我最大的问题。有谁知道我该如何解决这个问题?

目前我正尝试在 javascript 中执行此操作,但如果可行,我想使用 mysql 将这些点保存在数据库中,然后使用 php 一个接一个地添加。

最佳答案

我认为没有任何方法可以避免对生成的点进行某种重复检测,除非您通过遍历每个点并根据随机数的结果立即生成整个 map 并打开它。您可以根据距离中心的距离公式来衡量某个点出现的可能性。

但是,一般来说,蒙特卡洛方法没有任何问题,您只需在中心周围生成近似正态分布的点。您可以通过为 x 和 y 获取 3 个随机数,将它们加在一起并除以 3 来做到这一点。这将为您提供一个围绕中心的正常点云。您可以丢弃任何重复项。

关于javascript - 如何在二维中心点周围放置点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56739533/

相关文章:

javascript - 将参数传递给 forEach.call 中的函数

php - 如何将文本框中的数据更新到数据库中?

php - 在每个函数调用 php 上执行一些东西

mysql - 如何解释 JMeter 结果和功能

javascript - 正在使用 var foo = function foo() {};在 IE < 9 中创建内存泄漏的表达式?

javascript - 使用 JWT 进行 API 身份验证总是给出 WebTokenError

javascript - Facebook 登录按钮 onlogin 回调触发两次

php - 使用php修改现有的pdf文档

mysql - MariaDB 按日期排序并限制偏移量和缺失结果

mysql - SQL 连接或相同的 id