我有一系列CGPoints(好吧,实际上NSStrings是CGPoints)。
我有一个名为CGPoint nextPoint的单独点。
如何找出我的阵列中哪个CGPoint最接近nextPoint?
答案 0 :(得分:3)
您是否考虑过简单地遍历数组并finding the distance between all the points?
您可以将距离存储在新的NSMutableArray中,然后存储在grab the smallest value from it。
答案 1 :(得分:1)
像毕达哥拉斯一样迭代和计算并比较结果。
sqrt( ( exp( x1 - x2, 2) + exp( y1 - y2, 2 ) ) );
您可能想要检查CGFloat是浮点数还是双精度数,并在适当时使用这些函数的浮点版本。 有一个宏定义了这个。
if (CGFLOAT_IS_DOUBLE == YES) {
如果是,则使用上面的,如果否,则使用以f
结尾的函数版本如果您要比较的点数足够大,您需要更快地完成它,您可以尝试各种方法并行查找点的子集中的最短距离,然后比较这些操作的结果。