Tengo dos cuadros delimitadores alineados con objetos (es decir, sin ejes alineados, giran con el objeto). Me gustaría saber si dos cuadros alineados con objetos se superponen. ( Editar: nota: estoy usando una prueba de recuadro delimitador alineado con el eje para descartar rápidamente objetos distantes, por lo que no importa si la rutina quad es un poco más lenta ) .
Mis cajas se almacenan como cuatro puntos x, y. He buscado respuestas, pero no puedo entender los nombres de las variables y los algoritmos en los ejemplos para aplicarlos a mi caso particular.
¿Puede alguien ayudarme a mostrarme cómo se haría esto, de una manera clara y simple? Gracias. (El lenguaje particular no es importante, el pseudocódigo de estilo C está bien).
fuente
La forma más fácil es probablemente probar cada vértice de la casilla B contra cada lado de la casilla A (calcular la distancia firmada). De esta manera, puede clasificar cada vértice como "delante" o "detrás" del segmento.
Si todos los vértices de B se clasifican como "delante" de uno de los segmentos de A, B y A no se superponen; de lo contrario, lo hacen.
Esto es algo complicado, por lo que puede obtener algo de ganancia de rendimiento haciendo primero una verificación círculo-círculo, usando los círculos delimitadores de los cuadrados (trivial para calcular)
fuente