2010-01-18 10 views
5

Estoy tratando de encontrar un algoritmo que calculará la intersección entre 2 rectángulos, que no necesariamente están alineados con el eje, y devolverá la intersección resultante.Intersección de rectángulo no alineado con el eje

This question describe si existe una intersección. Me gustaría tener la forma resultante de la intersección, si existe.

Mi aplicación del algoritmo usará un rectángulo alineado con el eje y uno que no necesariamente esté alineado con el eje, pero sería preferible un algoritmo general.

Gracias!

+2

La respuesta se da por completo aquí ... http://stackoverflow.com/questions/8011267/area-of-rectangle-rectangle-intersection – Fattie

Respuesta

2

One algorithm for finding the intersection de dos polígonos convexos consiste en encontrar primero el casco convexo alrededor de todos los vértices. El casco convexo sigue el contorno del polígono que sea más externo; la forma que busca sigue el contorno del polígono que sea más interior, por lo tanto, siga el que el casco convexo no esté siguiendo. Here is a prettier picture del mismo algoritmo.

This extremely brief wiki page menciona otros dos algoritmos. Uno tiene que romper los polígonos en trapecios. La otra es una forma muy inteligente de caminar alrededor de ambos polígonos en sentido antihorario en el paso de bloqueo. Creo que me gusta más esta, pero como dice el wiki, es bastante difícil de describir.

+0

Esto es lo que estaba buscando, ¡gracias! –

3

Here's algoritmo de intersección polígono-polígono con fuentes en C y Java, que devuelve el área de intersección.

+0

Por lo que puedo decir de su enlace, están buscando en el área de la forma, donde necesito la definición de la forma en sí misma. ¡Gracias por responder, sin embargo! –

Cuestiones relacionadas