如何在2D中围绕中心点放置点?

时间:2019-06-24 15:14:13

标签: javascript php mysql 2d point

我陷入了这个问题: 我有2D空间,从坐标-200,-200(左上)到200,200(右下)。

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

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

但是现在有两个问题:

  1. 我不希望两个点位于同一位置。是否有比测试每个点以及是否有必要重复整个过程的方法更快,更简便的方法?

  2. 我不希望这些点立即分布在整个地图上。它们应该聚集在中心,并且仅在中心周围最大的点“环”中只剩下一些空间时才移开。
    但是尽管如此,这些点之间仍应不时有一些空白空间

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

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

1 个答案:

答案 0 :(得分:0)

我认为没有任何方法可以避免对生成的点进行某种形式的重复检测,除非您通过遍历每个点一次生成整个地图并根据随机数的结果将其打开来进行操作。您可以根据距中心的距离公式来加权出现点的机会。

但是,总的来说,蒙特卡洛方法没有什么错,您只需在中心周围生成近似正态分布的点即可。为此,您只需为x和y获取3个随机数,将它们加在一起并除以3。这将为您提供围绕中心的法线点云。您可以丢弃所有重复项。