Нахождение фигуры, созданной двумя другими пересекающимися фигурами - PullRequest
3 голосов
/ 18 октября 2010

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

alt text

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

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

    return yellow;
}

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

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

1 Ответ

5 голосов
/ 18 октября 2010

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

...