我有一系列长度和旋转点,如下所示:
我需要从线条重叠的点创建单独的链,但我在实现这一点时遇到了麻烦。
我有一个简单的Point对象数组,没有特定的顺序,我可以循环遍历它们并用简单的" cross"来测试它们。功能。我需要最终得到一个链数组,每个链都有一个有序的点列表。 (或者代表链条的另一种方式)。
目前,我探索的每条大道似乎都涉及阵阵,轻推和软糖的错综复杂的黑客攻击。从未学过计算机科学,我想知道是否有某种数据结构或技术可以很好地适应这类事情。
有人能指出我正确的方向来实现这一目标吗?伪代码很好(或者实际上是任何语言),尽管我在Processing / Java中进行编码,如果有帮助的话。
非常感谢,
约什
答案 0 :(得分:0)
您可以使用union-find algorithm查找已连接的集。
如果您的集合始终定义明确(没有多个交叉点等等),那么在连接过程中可能会进行一些修改以构建链:
对于每一组,除了代表'之外,保留两个极端片段,并在加入时修改它们。