如何在两条曲线之间创建渐变?

时间:2012-06-16 10:05:17

标签: cairo

我有两条曲线,一条在另一条曲线内,例如圆形内的椭圆形。我需要在它们之间创建渐变。

以下是更好解释的公式:

d_e = min_dist(ellipse,pixel)
d_c = min_dist(circle,pixel)
pixel_color = (e_color * d_e + c_color * d_c) / (d_e + d_c)

1 个答案:

答案 0 :(得分:1)

开罗只有径向图案,由两个圆圈定义,而不是椭圆和圆圈。

其他替代方案是网格渐变(cairo 1.12中的新增内容),但为此您需要自己计算分段近似值。听起来很难,只是粗略的近似。

所以我想我能提出的最佳建议是:自己设置单个像素并将结果用作图像表面来自己绘制。