【发布时间】:2013-10-19 06:29:32
【问题描述】:
在这里需要一些帮助。我是一名 UI 设计师,不擅长进行实验性 Web 表单设计的数字,我需要知道哪个输入元素最接近网页上的点击点。我知道如何用点做最近邻,但输入元素是矩形而不是点,所以我被卡住了。
我正在使用 jQuery。我只需要这个小算法的帮助。一旦我完成了我的实验,我会向你们展示我在做什么。
更新
我想过它是如何工作的。看这张图:
每个矩形有 8 个点(或者更确切地说是 4 个点和 4 条线),这些点很重要。只有 x 值对水平点有意义(红点),只有 y 值对垂直点有意义(绿点)。 x 和 y 对角点都很重要。
橙色十字是要测量的点——在我的用例中是鼠标点击。浅紫色线是橙色十字与可能最近的点之间的距离。
所以……对于任何给定的橙色十字,遍历每个矩形的 8 个点中的每一个,以找到每个矩形最接近橙色十字的边或角。具有最低值的矩形是最近的。
我可以将其概念化和可视化,但无法将其放入代码中。帮助!
【问题讨论】:
-
在最近邻算法中使用代表矩形的 4 个点。或者使用矩形的中心点 cx = (left + width)/2, cy = (top + height)/2。
-
有没有机会在 jsfiddle.net 中发布一些代码或做一些事情?否则这都是假设性的......
-
添加了一个插图来解释问题以及如何解决它。
标签: javascript jquery algorithm math nearest-neighbor