如果相距很远,则将点分开成多个点阵列

问题描述 投票:2回答:1

我希望我在这里很清楚,我将尝试添加图像以帮助人们理解我的问题。我有一个非常简单的Perlin噪声湖发生器:

“佩林噪声湖发生器”

将湖作为点阵列输出:

[
  {x: 0, y: 0},
  ...
]

使用简单的示踪剂从这些点生成多边形。它运行得很好,我对它感到满意,直到我想到可能会发生的问题,然后才发现问题确实发生了。当您在一个块中有两个独立的湖泊时(像这样)

<<

多边形跟踪器无法创建有效的多边形。我相信解决方案是事先将点分成几组,我查找了如何执行此操作,但是我发现的是一个算法,该算法需要知道在可以工作之前应该有多少组(我这样做不知道)。我完全迷住了,想就从何处开始提出一些建议。我不需要完整的代码答案(我可以自己实现),但是一个概念会很好。

我在等待答案的同时仍然会四处寻找和尝试事物,尽管我对自己的知识表示怀疑,即我将能够找到有用的东西。哦,如果重要的话,我的多边形追踪器会使用行进正方形。

我希望我在这里很清楚,我将尝试添加图像以帮助人们理解我的问题。我有一个非常简单的Perlin噪声色淀生成器:它以点数组形式输出色淀:[{x:0,y:0},...

javascript math geometry noise procedural-generation
1个回答
1
投票
您需要的是Clustering algorithm。并且由于您说您事先不知道簇的数量,所以我建议使用Mean Shift algoritm
© www.soinside.com 2019 - 2024. All rights reserved.