我有一个简单的绘图程序,允许用户在屏幕上绘制两个封闭的椭圆.我想用渐变填充椭圆,使用内部椭圆来表示渐变的"百分比".即Th梯度将在外椭圆形到内椭圆形之间平滑过渡.
我的交互式绘图工作正常,现在我只需要填充渐变.
有什么想法吗?文档只讨论完美的圆形渐变,而不是椭圆形.

_麦克风
我不知道是否有可能椭圆形渐变.但是你可以将圆形变换为椭圆形.想法是在变换坐标系中绘制一个圆.
代码示例:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextScaleCTM(context, 1.0, 0.5);
CGGradientRef gradient;
CGColorSpaceRef colorspace;
CGFloat locations[2] = { 0.0, 1.0};
NSArray *colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor blueColor].CGColor];
colorspace = CGColorSpaceCreateDeviceRGB();
gradient = CGGradientCreateWithColors(colorspace, (CFArrayRef)colors, locations);
CGPoint startPoint, endPoint;
CGFloat startRadius, endRadius;
startPoint.x = 180;
startPoint.y = 180;
endPoint.x = 180;
endPoint.y = 180;
startRadius = 0;
endRadius = 100;
CGContextDrawRadialGradient (context, gradient, startPoint, startRadius, endPoint, endRadius, 0);
CGContextRestoreGState(context);
}
Run Code Online (Sandbox Code Playgroud)
运行代码的结果:

| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |