我有数千条线段,我想通过共线性进行聚类。一种方法是使用无限行的键创建一个关联容器。有了这样一个容器,我可以使用线段的集合作为值,并通过确定它是一个线段的无限线并插入相应的 bin 来添加线段。
给定这样的设置,表征无限行以支持查询给定行附近的行键的数据结构的能力的最佳方法是什么?
例如,我正在考虑使用点的 R-tree(在这个项目的其他地方,我已经在使用 Boost.Geometry R-trees),其中每个点都是无限线的 x 截距和 y 截距。但是,这只适用于非垂直和非水平线。我可以将垂直线和水平线作为特殊情况处理,但是我将无法像查询非轴附近的线那样轻松查询“靠近”垂直或水平线的线通过对 R 树中的截取点进行 2D 范围查询来对齐线。
我想知道是否有一些优雅的方式来处理这个问题。如何将无限的 2D 线表示为点,使水平线和垂直线与任何其他类型的线没有什么不同,并且彼此靠近的线映射到彼此靠近的点?