C# разбить сложный многоугольник на прямоугольники

Валерий15 років у сервісі
Дані замовника будуть вам доступні після подання заявки
03.05.2012

Нужен класс на C#, которому передаю в качестве параметров два массива:

1. массив точек, из которого рисуется сложная фигура (первая точка = она же последняя)

2. массив, в котором массивы размеров прямоугольников, на которые нужно разбивать сложную фигуру - если сложно реализовать с разными прямоугольниками - возьмем прямоугольники одинаковой ширины.

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

Как я вижу решение задачи.

Расчитываем ширину фигуры, делим на ширину прямоугольников. Получаем количество полос. Далее для каждой из полос берем мин и макс высоты для точек пересечения сторон полосы и фигуры. Получаем координаты точек, кот. принадлежат сложной фигуре и которые попадают в наш прямоугольник. Далее из массива прямоугольников берем подходящие прямоугольники.

См. рисунки в приложении.

Повторюсь - на входе два массива - точек сложной фигуры и массив прямоугольников (ширина, высота) - если сложно реализовать с разной шириной - ширина одна.

На выходе массив прямоугольников {a1{0,0,10,10},a2{10,10,35,30}} - по которому я смогу отрисовать прямоугольники поверх сложной фигуры. Понятно, что может быть много вариантов комбинаций прямоугольников (если на входе будет много разных прямоугольников). Хорошо будет, если на выходе будет многомерный массив вариантов, где каждый элемент будет комбинацией вариантов, и в каждом элементе массива будет лежать массив прямоугольников).

Просьба указать сроки и цену исполнения.