我想绘制一些Bezier曲线,其中alpha通道在曲线绘制过程中会发生变化。现在我能够使用固定的alpha通道绘制bezier路径。我想要做的是绘制单个贝塞尔曲线,该曲线使用α通道的特定值用于路径的前n个点,后续m个点的alpha值,依此类推。 我用来绘制bezier路径的代码是:
CGContextSetStrokeColorWithColor(context, curva.color.CGColor);
....
CGContextAddCurveToPoint(context, cp1.x, cp1.y, cp2.x, cp2.y, endPoint.x, endPoint.y);
....
CGContextStrokePath(context);
有没有办法实现我所描述的目标?
非常感谢, 乔瓦尼
答案 0 :(得分:0)
我认为有两种方法可以达到这种效果:
如果绝对必须在绘制时计算alpha,则可以尝试创建彩色CGPatternRef(http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Reference/CGPattern/Reference/reference.html),其绘图回调检查当前上下文转换并根据偏移绘制颜色。您可以将CGContextSetStrokePattern设置为您创建的模式,而不是设置笔触颜色。
如果适用于绘制的对象,则可以在曲线空间中预先计算alpha,并使用CGPathRef作为Alpha图像的蒙版。
我应该有资格证明我从未尝试过CGPatternRef方法,所以我只能指出它是一种潜在的,而不是确定的。
答案 1 :(得分:0)
有一种更简单的方法可以做你想做的事情: