Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

266
Vistas
¿Cómo determinar si hubo una colisión entre un rectángulo normal y un rectángulo girado?

Determinar si hubo o no una colisión entre dos rectángulos AABB (cuadro delimitador alineado con el eje) es trivial:

 doRectanglesCollide(r1X, r1Y, r1W, r1H, r2X, r2Y, r2W, r2H) { return r1X < r2X + r2W && r1X + r1W > r2X && r1Y < r2Y + r2H && r1Y + r1H > r2Y; }

Determinar si hubo o no una colisión entre dos rectángulos rotados es mucho menos eficiente.

Sin embargo, hay un truco. Uno puede rotar ambos rectángulos en la misma cantidad de modo que uno de ellos se convierta en un rectángulo AABB.

En ese punto, uno simplemente necesitaría una función que determine si un rectángulo AABB y un rectángulo girado se cruzan. Supongo que sería mucho más eficiente que usar el teorema del eje de separación para determinar si dos rectángulos girados se intersecan, ya que este último es una fórmula general para determinar si dos polígonos arbitrarios se intersecan.

Entonces, para reformular, aquí está mi pregunta: tengo dos rectángulos que están girados. En lugar de usar la respuesta vinculada, ¿no existe un algoritmo más eficiente que aproveche el hecho de que uno de los rectángulos se puede convertir en un rectángulo AABB al rotarlos a ambos por -radians ? Porque en ese punto simplemente se convierte en la pregunta de si un rectángulo AABB y un rectángulo rotado se intersecan o no.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda