我有一个 CGPoints 数组,想根据到外部点的最近距离对其进行排序。我已经完成了以下操作,但它返回了不正确的结果。
NSArray *sortedArray = [self.availableRenderPoints sortedArrayUsingComparator:^NSComparisonResult(NSValue *obj1, NSValue *obj2)
{
CGPoint p1 = [obj1 CGPointValue];
CGPoint p2 = [obj2 CGPointValue];
CGFloat distance1 = ccpDistance(startPoint, p1);
CGFloat distance2 = ccpDistance(startPoint, p2);
if (distance1 <= distance2) return p1.y < p2.y;
if (distance2 <= distance1) return p2.y < p1.y;
return p1.x < p2.x;
}];
如何根据到 startPoint 的最近距离对其进行排序?