我有一些带有属性x和y(位置)的对象。我想获取并处理那些与我附近(!)但忽略超出范围(*)的对象。
__________________________
| __________ |
| | ! | * |
|* | !| * | -me = center of subset
| | me | | -! = elements of subset
| | ! | | -* = elements of full set, not visible
| |_______!__| * *|
|__________________________|
慢速的方法是迭代整个未排序的集合,并忽略距离太远的元素。但是,我将有一个大数据集,并且需要相当高的性能。
相反,我正在寻找一种选择仅附近元素的方法。也许通过某种方式对2d集进行排序,并仅在一定范围内迭代集合(从子集的边界到边界)。
有没有好的方法来做到这一点?
(注意:对象的位置是静态的,集合可以进行预处理)