以编程方式在路径上绘制渐变

Posted

技术标签:

【中文标题】以编程方式在路径上绘制渐变【英文标题】:Drawing a gradient on a path programmatically 【发布时间】:2015-04-28 17:33:45 【问题描述】:

我一直在尝试使用 CALayers 或 CGContexts 在类似于下图中的路径上绘制渐变。

路径不需要具有可变的粗细或轮廓。它只需要路径上的渐变。

(来源:sethtaylor.com)

当我的线接近直线时,我一直在以下答案Draw gradient along a curved UIBezierPath 中使用该解决方案。现在这条线像上图一样弯曲回到自身,需要以编程方式沿着路径绘制笔触。

我不太确定从哪里开始寻找这个。你会尝试什么?

【问题讨论】:

没有内置支持。这将是很多工作。 你将如何解决这个问题? 我认为可以一次追踪一个像素的路径并画一个圆圈,在颜色之间手动插值。 另一种可能的方法是将曲线近似为弧 (something like this) 并为每个弧绘制角度梯度。我认为它可以工作。不过我还没有测试过。 【参考方案1】:

@saniul on Twitter pointed out 到 Gradient Polyline with MapKit ios,其中包含用于单步执行路径并以不同方式绘制每个段的代码。应该有你需要的所有积木!

【讨论】:

看起来很有希望,明天试试这个!

以上是关于以编程方式在路径上绘制渐变的主要内容,如果未能解决你的问题,请参考以下文章

canvas之渐变

iOS 绘制颜色渐变圆环 --- 值得一看

iOS - 如何沿路径绘制渐变

在ios中的图像上绘制渐变

完美水平路径的 SVG 渐变

tableau高级绘图-tableau绘制渐变图