私は奇妙な形のポリゴンのためにCGPathRef
を持っています。このパスのの外側にのアルファを適用する必要があります。これはかなり簡単です。2つのCGPathオブジェクトの交差の外側にアルファを適用する
CGContextAddPath(context, crazyPolygon);
CGContextSetFillColor(context, someAlphaColor);
CGContextEOFillPath(context);
私はサークルと同様に何かをする必要があります。
CGMutablePathRef circlePath = CGPathCreateMutable();
CGPathAddRect(circlePath, NULL, rect);
CGPathAddEllipseInRect(circlePath, NULL, circleBox);
CGContextAddPath(context, circlePath);
CGContextSetFillColor(context, someAlphaColor);
CGContextEOFillPath(context);
2つの図形を交差しようとすると問題が発生します。私は両方の図形の内側にないピクセルにアルファを適用したい。
- 点が円内にあり、ポリゴン内にない場合は、アルファを適用します。
- ポリゴンにありますがサークル内にない場合は、アルファを適用します。
- 多角形と円の両方にある場合は、ピクセルは完全に透明でなければなりません。
私はさまざまなアプローチを試みました。誰も働いていない。最も有望なのは、ポリゴンでマスクを作成し、円の描画をバインドするのにCGContextClipToMask
を使用することでした。フル・サークルはクリッピングなしで描かれました。