8

有谁知道将矢量路径转换为由三角形/四边形面组成的描边路径的好算法?理想情况下使用圆线连接。

基本上我正在尝试绘制一条粗路径,其颜色基于随路径距离而变化的值。我正在考虑将路径转换为三角形/四边形并通过提供沿路径的距离作为 1d 纹理坐标来将其转换为纹理映射,然后可用于检索三角形角处的颜色并进行插值。任何其他关于如何做到这一点的建议看起来不会很糟糕并且可以抗锯齿,我们将不胜感激。

我目前正在使用 AGG 进行渲染,但如果它没有太多依赖项,我也许可以使用替代方案。我想用于渲染的后端并不重要。虽然 AGG 可以描边路径,但 VertexSource 接口不允许除了 x/y 坐标之外的其他顶点信息。此外,在使用普通的 conv_stroke 时,将我的颜色映射到光栅化器中看起来并不可行。

4

2 回答 2

3

对于任何寻求解决方案的人,我发现这很有用: https ://keithp.com/~keithp/talks/cairo2003.pdf

因此,您可以有效地将正多边形与线进行卷积以生成网格。需要比pdf中概述的稍微复杂的算法才能输出三角形,但实际上扩展它并不太难。

您还可以按照 agg::span_gouraud_rgba 的行为 AGG 编写自定义跨度生成器,但它可以有效地执行纹理映射。

于 2011-08-16T08:48:19.117 回答
3

这是了解抚摸路径机制的另一个重要资源。

于 2015-02-26T16:21:56.797 回答