私は、描画アプリに基本的な圧力感度を追加しようとしています。私はストロークを描画しようとすると、不透明度は圧力に依存するところ、問題に実行しています - 線分の重なりのポイントは、暗いスポットを作成する、2つの行をブレンド:オーバーラップをブレンドせずに背景とブレンドして、異なる不透明度の線の並びを描く方法は?
この私のコードは次のとおりです。
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, path.thickness);
CGContextSetStrokeColorWithColor(context, self.lineColor.CGColor);
for (Segment *segment in segments) {
CGContextMoveToPoint(context, segment.start.x, segment.start.y);
CGContextAddLineToPoint(context, segment.end.x, segment.end.y);
CGContextSetAlpha(context, segment.alpha);
CGContextStrokePath(context);
}
私はラインキャップを満たし、まだ背景の上に透明性を持つことができるの円を避けたいです。
私はコンテキストブレンドモードを試しましたが、何も完全に満足できるものはありません - kCGBlendModeDestinationAtop
は滑らかなラインを与えましたが、ラインの最後にアーティファクトがあり、バックグラウンドとのブレンドを失います。
バンディングは問題ではありません。