0

语境

我正在使用 Java Graphics2D。

我正在画一堆形状。

我希望能够进行快速命中检测——当鼠标点击一个对象时,我想知道点击了什么对象。

更多细节:

我想在填充检测级别执行此操作。即,如果我有一个圆圈,我不想在圆圈的边界框上进行命中检测,我希望在圆圈的内部进行命中检测。

对于笔画/线条/字体,我可以对框(而不是字母的黑色部分)进行命中检测。

问题:

我应该使用哪些 API 进行设置?[出于好奇,Java 使用什么算法/什么是 big-OH​​ 运行时间?]

谢谢!

4

1 回答 1

1

shape.contains(point)用?询问每个形状

那是 O(形状数量),但您可能不需要更快的东西。假设一个形状的点击测试需要 1 微秒,并且您有 100,000 个形状,您仍然可以每秒处理 10 次点击......

于 2012-06-17T12:24:10.513 回答