【问题标题】:Generating Scatter Points Alogrithm生成散点算法
【发布时间】:2016-05-26 03:47:04
【问题描述】:

我正在制作一个产生分散x点数的游戏。所有点的半径为w

积分必须遵循以下规则:

  • 点不能与其他点重叠
  • 点必须分散开,以便每个点至少DISTANCE 远离任何其他点。

您能否列出一个有效的算法来执行此操作?

我也在用 Swift Sprite-Kit 制作这个游戏。所以如果你知道一些 Sprite-Kit,你可以在你的答案中实现它,否则如果你不知道 Swift 或 Sprite-Kit,你可以用文字解释。

【问题讨论】:

  • All Points have a constant radius of w 是什么意思?点实际上是球体吗?
  • 是的,所有点都是球体

标签: swift math sprite-kit logic point


【解决方案1】:

你的两个约束是等价的。这意味着任何两点之间的距离必须至少为max(w, DISTANCE)

最简单的方法是生成随机点并检查到先前点的最小距离。如果不满足约束,只需生成一个新点。您可以使用简单的网格加快距离检查(将点放在网格单元格中,然后只检查可能包含重叠点的单元格)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2012-04-21
    • 1970-01-01
    • 2017-04-14
    • 2010-09-24
    • 2010-10-16
    相关资源
    最近更新 更多