【发布时间】:2014-03-04 12:14:30
【问题描述】:
我的问题是,当我的程序的用户单击屏幕时,我正在检索鼠标坐标,并且我希望能够将这些坐标四舍五入到已定义的坐标列表中最近的坐标(在本例中是一个列表形状网格的所有中心点)
形状网格是六边形网格,其中心点在 x 轴上相距 30 个像素,在 y 轴上相距 30 个像素。
如何将鼠标坐标四舍五入到最近的六边形中心点? 谢谢
【问题讨论】:
-
一维,这就是简单的二分查找
-
在 2 中? (如 x 和 y 坐标?)
-
我可以做 2 次二进制搜索吗?一个查找最近的行,另一个查找最近的列?
-
我在图像查看器github.com/dov/giv 中解决了这个问题,方法是创建与原始图像相同大小的第二个矩阵,而不是每个像素的颜色包含“标签”,一个整数对应于blob-id。
-
“将整数舍入到列表中最接近的整数”与您要解决的问题是一个相当不同的问题,我不确定解决方案(这将是一个简单的二进制搜索)会对你有很大帮助,这让我想知道如果你不确定如何将两者联系起来,你为什么要问这个问题而不是寻求实际问题的帮助。顺便说一句 - 我试图回答我认为你应该问的问题以及你想要回答的问题,但也许你在某个地方把我弄丢了。
标签: c++ algorithm list rounding