【发布时间】:2013-05-16 09:37:43
【问题描述】:
我有一张图片,我想在鼠标移过某些矩形区域时显示工具提示。矩形区域最大可达 1000 个。但是,仅检查每个矩形是否有点在其中,即 O(N),会导致界面在移动鼠标时无响应。
有没有办法在少于 O(N) 的时间内做到这一点?我可以事先对矩形进行排序(我假设它是需要的)。矩形可能(很少)重叠,但不超过 4-5 个矩形可以重叠同一区域。在这种情况下,我可能需要获取所有矩形的列表,但即使只是其中任何一个也足够了。
但我假设这个问题已经被窗口管理器等解决了。
【问题讨论】:
-
虽然这是一个算法问题,但所涉及的界面/上下文可以帮助提供更好的建议 - 例如。与 C++ 绘图应用程序相比,网页/Javascript 环境解决方案会有所不同
-
@ring0 很公平,我正在使用 C++ 和 Qt,我正在可视化 OCR 的输出,即边界框 + 识别符号 + 其他数据。
-
感谢您的信息。我不太了解Qt,但是正如您所建议的,它可能会根据它们的“深度”和位置来处理窗口(小部件)-因此至少应该可以立即获得“顶部”矩形“下方”鼠标(就像通过核心算法的浏览器一样)and this 似乎是一个提示。至于获取 all rects 的列表(即从所有深度),这需要更多的研究。