CGPathRef для набора CGRects

Я ищу какой-то алгоритм или какой-то способ или даже некоторые ссылки, которые могут позволить мне генерировать набор прямоугольников из CGPathRef.

Рассмотрим следующие случаи:

Добавьте прямоугольник в путь

CGMutablePathRef pathref = CGPathCreateMutable();
CGPathAddRect(pathref, NULL, CGRectMake(10, 10, 200, 300));
CGPathCloseSubpath(pathref);

В приведенном выше случае у нас есть только один прямоугольник, хранящийся в пути, поэтому, когда мы его заполняем, рисуется только один прямоугольник, поэтому алгоритм возвращает 1 прямоугольник.

Добавление круга/эллипса к контуру

CGMutablePathRef pathref = CGPathCreateMutable();
CGPathAddEllipseInRect(pathref, NULL, CGRectMake(10, 10, 500, 500));
CGPathCloseSubpath(pathref);

В этом случае у нас есть круг, хранящийся в пути, поэтому, когда мы его рисуем, мы можем представить, что множество ретаблиц заполнено, поэтому алгоритм возвращает n прямоугольников.

Немного более сложный путь

CGMutablePathRef pathref = CGPathCreateMutable();
CGPathAddRect(pathref, NULL, CGRectMake(10, 10, 200, 300));
CGPathAddEllipseInRect(pathref, NULL, CGRectMake(10, 10, 500, 500));
CGPathCloseSubpath(pathref);

и так далее.

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

Может ли кто-нибудь подсказать мне, как этого можно достичь?


person RLT    schedule 12.09.2013    source источник


Ответы (1)