2013-01-25 26 views
1

我是这种类型的编程方法的新手,因为我真的不在乎核心图形生成。我用python设计,编写,运行和研究参数化气候模型。但是,最后,我遇到了一个可视化问题。在开罗使用网格渐变为路径着色

我在开罗图书馆寻找东西,它允许我将线性渐变映射到任意曲线(不一定是圆周)上,使得我的路径中颜色(或阴影)或多或少平滑变化。然后,我一直在寻找一些模式,我终于发现,在开罗可能是网格渐变是解决方案。

但是,我无法使用cairo.pattern_create_mesh()从我的python脚本创建新的网格渐变!

因此,我的问题是:我如何在开罗使用网格渐变?有没有其他简单的方法可以做到我想要的开罗(我不知道,就像通过参数化从线段到曲线的简单映射,我知道我问得太多了)?

回答

0

网格模式被添加到最新版本的cairo 1.12中。因此,大多数语言绑定可能不支持它们。我不知道python和cairo的组合,因此不知道任何解决方法。

我不知道任何简单的方法来模拟你需要与其他模式,对不起。 (虽然我不太确定你想如何通过网格渐变来绘制你的映射......)

+0

对于我所读的,基本上Inkscape维基和Illustrator的帮助,对于圆周,人们可以使用锥形渐变获得什么我想要。我已经看到开罗在其最新版本中可以做到这一点。我想知道对任意平滑曲线有一些推广。正如你所说的,也许我必须等待python绑定被更新为使用网格渐变,其中圆锥形的渐变是我所了解的网格渐变的特例。 – elessartelkontar

+0

我在想的便宜技巧是,目前最好的方法是在大量单独的分段中划分曲线,并且为每个分段分配一个线性渐变,第一个停止点是上一个分段渐变的最后一个停止点。显然,曲线段需要很小,因为您将在本地近似通过曲线切线的梯度方向。那么对于一些曲线曲率半径非常小的曲线来说,这可能是一个问题。 – elessartelkontar

+0

问题在于:线性渐变只有一条线。因此我不认为你可以用这种方法来逼近你的圆锥渐变。你需要一些魔力才能将它直接绘制到图像表面...... –