Tengo una colección de rectángulos que no se superponen que cubren un rectángulo envolvente. ¿Cuál es la mejor manera de encontrar el rectángulo que contiene un clic del mouse?Algoritmo para la prueba de impacto en rectángulos que no se solapan
La respuesta obvia es tener una matriz de rectángulos y buscarlos en secuencia, haciendo la búsqueda O (n). ¿Hay alguna forma de ordenarlos por posición para que el algoritmo sea menor que O (n), por ejemplo, O (log n) o O (sqrt (n))?
El kd-tree y el R-tree son más parecidos a lo que imaginaba que era posible. La solución de mapa de bits es fuerza bruta y demostrablemente correcta, pero creo que buscaré una solución de árbol. – hughdbrown
Me gusta la idea del árbol de intervalos también. Dado que sus rectángulos no se superponen, esa puede ser la forma más sencilla de hacerlo. –