语境
我正在使用 Java Graphics2D。
我正在画一堆形状。
我希望能够进行快速命中检测——当鼠标点击一个对象时,我想知道点击了什么对象。
更多细节:
我想在填充检测级别执行此操作。即,如果我有一个圆圈,我不想在圆圈的边界框上进行命中检测,我希望在圆圈的内部进行命中检测。
对于笔画/线条/字体,我可以对框(而不是字母的黑色部分)进行命中检测。
问题:
我应该使用哪些 API 进行设置?[出于好奇,Java 使用什么算法/什么是 big-OH 运行时间?]
谢谢!
shape.contains(point)
用?询问每个形状
那是 O(形状数量),但您可能不需要更快的东西。假设一个形状的点击测试需要 1 微秒,并且您有 100,000 个形状,您仍然可以每秒处理 10 次点击......