我有 4 个 NSPoint,它们是矩形的 4 个角
现在我有另一个 NSPoint,这是鼠标下降的地方(mousedown_nsp)。
找到与mousedown_nsp相关的最近的 NSPoint(在 4 个矩形角 NSPoints 中)的最佳方法是什么?
我想只是做一个比较来找到mousedown_nsp和其他 4 个 NSPoints 之间的距离,然后选择最小的距离,但我觉得必须有更好的方法。
有任何想法吗?
提前致谢!
我有 4 个 NSPoint,它们是矩形的 4 个角
现在我有另一个 NSPoint,这是鼠标下降的地方(mousedown_nsp)。
找到与mousedown_nsp相关的最近的 NSPoint(在 4 个矩形角 NSPoints 中)的最佳方法是什么?
我想只是做一个比较来找到mousedown_nsp和其他 4 个 NSPoints 之间的距离,然后选择最小的距离,但我觉得必须有更好的方法。
有任何想法吗?
提前致谢!
也许是这样的(这假设一个非旋转的矩形):
NSPoint tl = ... // top-left corner
NSPoint tr = ... // top-right corner
NSPoint bl = ... // bottom-left corner
NSPoint br = ... // bottom-right corner
NSPoint pt = ... // the point
NSPoint center = NSMakePoint((tl.x + tr.x) / 2.0, (tl.y + bl.y) / 2.0);
NSPoint closest;
if (pt.x < center.x) {
if (pt.y < center.y) {
closest = tl; // point is in upper-left quadrant
} else {
closest = bl; // point is in lower-left quadrant
}
} else {
if (pt.y < center.y) {
closest = tr; // point is in upper-right quadrant
} else {
closest = br; // point is in lower-right quadrant
}
}