一般问题陈述:
设计画布形状选择引擎
鉴于:
2D 平面上的任意凸形。(说由 std::vector < IShape* > 表示,IShape 有 getBBox() 成员)
问题:
查找并返回给定矩形区域内的形状集合/子集。
(在这个特定的例子中应该返回形状 A 和 B )
我知道这个典型的范围范围搜索/范围查询问题,但是“经典”示例是指在给定区域中搜索点,以说明如何使用 kdtree 来解决问题。
我不知道如何“扩展”算法来处理形状。我更多的是寻找想法而不是确切的实施。
(我不考虑对每个形状进行简单的循环以查看是否在给定区域内或之外)