Кто-нибудь знает, можно ли комбинировать (например) разные пути CGContext для создания новой комбинированной формы, как в этом примере?
Спасибо!
Кто-нибудь знает, можно ли комбинировать (например) разные пути CGContext для создания новой комбинированной формы, как в этом примере?
Спасибо!
Я нашел библиотеку, которая выполняет операции Union на CGPaths:
https://bitbucket.org/martinwinter/vectorbooleancg
Я еще не пробовал, но автор ветки CG Vectorbool, Мартин Винтер, утверждает, что операцию объединения можно использовать в ее текущем виде на iOS. Я добавлю информацию, когда соберусь попробовать ее реализовать.
Я сомневаюсь, что есть библиотека Apple, поддерживающая эту функцию.
Вам нужно так называемое «объединение двух (или более) полигонов», иногда называемое булевыми операциями над полигонами. Я бы преобразовал CGPath в многоугольник, возможно, вы начнете создавать массив точек, содержащий точки вашего многоугольника. Это означает не использовать CGPathAddEllipse, а аппроксимировать формы, например, правильным многоугольником с числом вершин от 64 до 256.
Вы можете легко вычислить точки круга или эллипса для себя (используя что-то похожее на a*cos(t), b*sin(t) см. википедию для формулы параметра эллипса). Затем вы берете одну из библиотек c, которые предоставляют эти "союзные операции". Одним из них является библиотека LEDA.