gpt4 book ai didi

ios - Quartz2d渐变填充椭圆形

转载 作者:行者123 更新时间:2023-12-01 17:54:49 25 4
gpt4 key购买 nike

我有一个简单的绘制例程,允许用户在屏幕上绘制两个封闭的椭圆。我想用渐变填充椭圆,使用内部椭圆表示渐变的“百分比”。即,梯度将在外部椭圆形到内部椭圆形之间平滑过渡。

我的交互式绘图工作正常,现在只需要填充渐变即可。

有什么想法吗?文档只谈论完美的圆形渐变,而不是椭圆形。

_麦克风

最佳答案

我不知道是否可能出现椭圆形渐变。但是您可以将圆形转换为椭圆形。这个想法是在变换后的坐标系中画一个圆。

代码示例:

- (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);
}

运行代码的结果:

关于ios - Quartz2d渐变填充椭圆形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19708486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com