如何沿弧线绘制渐变

时间:2013-06-01 08:45:04

标签: objective-c cocoa

我正在开发一款Mac应用程序,我想绘制一个像雷达一样的视图,我找不到沿着弧线绘制渐变色的方法。现有方法仅向一个方向绘制渐变。

2 个答案:

答案 0 :(得分:5)

你想要的是一个角度梯度。我写过a Core Image filter that generates an angle gradient;给它起始颜色的不透明颜色(例如绿色)和中间颜色和最终颜色的颜色的完全透明版本。

Angle gradient with green, transparent green, and transparent green.

(滤镜的输出实际上是无限的,并且以原点为中心,所以你需要将它遮盖到一个圆圈,并在一个或另一个层面使用仿射变换使其进入正确的位置。)< / p>

额外信用:在该过滤器的内核代码中(靠近.m的开头),有一条线以直线(90°)而不是直线开始渐变。您可以更改过滤器和内核的代码,使其成为一个参数(如inputStartColor等),您可以使用CABasicAnimation或类似的东西随时间变化。

答案 1 :(得分:0)

您需要使用轴向和径向渐变的组合,可能还需要使用一些剪切路径。您可以找到所有这些记录here

您还可以使用colorWithPatternImage:来描绘您正在绘制的任何线条。