2010-01-18 7 views
5

J'essaie de trouver un algorithme qui calcule l'intersection entre 2 rectangles, qui ne sont pas nécessairement alignés sur les axes, et renvoie l'intersection résultante.Intersection rectangle non aligné sur les axes

This question décrit la recherche d'une intersection existante. J'aimerais avoir la forme résultante de l'intersection, si elle existe.

Mon application de l'algorithme utilisera un rectangle aligné sur l'axe et un qui n'est pas nécessairement aligné sur l'axe, mais un algorithme général serait préférable.

Merci!

+2

La réponse est entièrement donnée ici ... http://stackoverflow.com/questions/8011267/area-of-rectangle-rectangle-intersection – Fattie

Répondre

2

One algorithm for finding the intersection de deux polygones convexes implique de trouver d'abord la coque convexe autour de tous les sommets. La coque convexe suit le contour du polygone le plus à l'extérieur; la forme que vous recherchez suit le contour du polygone le plus à l'intérieur, donc suivez celui qui ne suit pas la coque convexe. Here is a prettier picture du même algorithme.

This extremely brief wiki page mentionne deux autres algorithmes. On a vous casser les polygones en trapèzes. L'autre est une manière très intelligente de contourner les deux polygones dans le sens inverse des aiguilles d'une montre à l'étape de verrouillage. Je pense que je préfère celui-ci, mais comme le dit le wiki, c'est plutôt difficile à décrire.

+0

C'est ce que je cherchais, merci! –

3

Here's un algorithme d'intersection polygone-polygone avec des sources en C et Java, qui renvoie la zone d'intersection.

+0

D'après ce que je peux dire de votre lien, ils regardent la zone de la forme, où j'ai besoin de la définition de la forme elle-même. Merci d'avoir répondu, cependant! –

Questions connexes