2010-10-18 25 views
3

J'ai deux formes qui se chevauchent dans mon application C#, définies par des tableaux Point. J'ai besoin de trouver les points qui définissent la forme où ces deux se chevauchent. Dans cette image, je connais les points rouges et verts, mais j'ai besoin des points jaunes.Recherche de la forme créée par deux autres formes d'intersection

alt text

Voici un code factice qui pourrait aider:

Point[] GetIntersection(Point[] red, Point[] green) 
{ 
    Point[] yellow = ?!?; 

    return yellow; 
} 

Il y a certainement des moyens que vous pourriez faire ce beau rectangles facile en supposant. En pratique, je dois être capable de gérer des polygones et peut-être même des cercles (bien que je puisse vivre sans cercles).

Des idées? J'espère qu'il y aura une bonne fonction GDI + qui va tout cracher.

Répondre

5

Il semble que la méthode Region::Intersect fasse ce que vous voulez.

+0

@Miky - Je l'ai essayé avec un polygone et cela a bien fonctionné (vous devez créer un 'GraphicsPath' à partir du tableau de points de polygones). –