2010-10-18 3 views
3

У меня есть две перекрывающиеся формы в моем приложении C#, определяемом Point массивами. Мне нужно найти точки, которые определяют форму, где эти два перекрываются. На этом изображении я знаю красные и зеленые точки, но мне нужны желтые точки.Поиск формы, созданной двумя другими пересекающимися фигурами

alt text

Вот некоторые фиктивный код, который может помочь:

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

    return yellow; 
} 

Есть, конечно, способы, которыми Вы могли бы сделать это, предполагая, хорошие простые прямоугольники. На практике мне нужно иметь возможность обрабатывать полигоны и, возможно, даже круги (хотя я могу жить без кругов).

Любые идеи? Я надеюсь, что есть отличная функция GDI +, которая просто выплюнет это.

ответ

5

Похоже, что метод Region::Intersect делает то, что вы хотите.

+0

@Miky - Я попробовал его с полигоном, и он отлично работал (вам нужно создать «GraphicsPath» из массива точек полигона). –

 Смежные вопросы

  • Нет связанных вопросов^_^