我的算法生成一个(通常)数千条线段(全是二维)的列表,我需要将它们连接成大型折线。这些生成的折线可能是闭合的或开放的,但它们永远不会自相交。线段没有方向,即可能需要翻转线段才能将其连接到相邻线段。
找到这些折线的极快方法是什么?我必须实时执行此操作,因此任何需要超过 10 毫秒的时间都不是解决方案。
我正在用 C# 执行此操作,但我正在寻找想法,而不是源代码。
端点的哈希值可以工作吗?
如果端点完全匹配,那么您只需将每个对象存储在哈希中两次,每个端点一次。然后,对于每个对象,查找其两个端点。您将获得需要连接的任何其他对象。
如果端点有任何类型的不精确,那么您将需要空间索引 http://en.wikipedia.org/wiki/Spatial_index,可能还有一个使用 R 树 http://en.wikipedia.org/wiki/R-tree。只需制作一个 2d 哈希网格即可获得类似的效果。哈希网格包含附近端点的存储桶。您将需要检查邻近的小区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)