【发布时间】:2014-05-19 00:15:23
【问题描述】:
我有一个 CGPoints 数组(嗯,实际上是 NSStrings 作为 CGPoints)。
我有一个单独的点,称为 CGPoint nextPoint。
如何找出我的数组中最接近 nextPoint 的 CGPoint?
【问题讨论】:
标签: objective-c cocoa
我有一个 CGPoints 数组(嗯,实际上是 NSStrings 作为 CGPoints)。
我有一个单独的点,称为 CGPoint nextPoint。
如何找出我的数组中最接近 nextPoint 的 CGPoint?
【问题讨论】:
标签: objective-c cocoa
您是否考虑过简单地遍历您的数组和finding the distance between all the points?
您可以将距离存储在新的 NSMutableArray 中,然后 grab the smallest value from it。
【讨论】:
只需像毕达哥拉斯一样迭代和计算并比较结果。
sqrt( ( exp( x1 - x2, 2) + exp( y1 - y2, 2 ) ) );
您可能想检查 CGFloat 是浮点数还是双精度数,并在适当时使用这些函数的浮点版本。 有一个宏定义了这一点。
if (CGFLOAT_IS_DOUBLE == YES) {
如果是,则使用上述,如果否,则使用以f结尾的函数版本
如果您要比较的点集足够大,您需要更快地进行比较,您可以尝试各种方法,在并行的点子集中找到最短距离,然后比较这些操作的结果。
【讨论】: