Pet*_*ete 7 c++ geometry pathgeometry
有没有人知道一个很好的算法,用于将矢量路径转换为由三角形/四边形面组成的描边路径?理想情况下使用圆形连接.
基本上我正在尝试绘制一条粗路径,其颜色基于随路径距离而变化的值.我想通过将路径上的距离作为1d纹理坐标进行转换,将路径转换为三角形/四边形并对其进行纹理映射,然后可以使用该坐标检索三角形角落处的颜色并进行插值.任何其他关于如何做这个看起来不会很糟糕并且可以消除锯齿的建议将不胜感激.
我目前正在使用AGG进行渲染,但我可以使用替代方案,前提是它没有太多依赖项.我想用于渲染的后端并不重要.虽然AGG可以描边路径,但VertexSource接口不允许除x/y坐标之外的其他顶点信息.另外,在使用普通的conv_stroke时,将我的颜色映射到光栅化器中看起来并不可行.
对于任何寻找解决方案的人来说,我发现这很有用: https ://keithp.com/~keithp/talks/cairo2003.pdf
因此,您可以有效地将正多边形与线进行卷积来生成网格。需要比 pdf 中概述的稍微复杂的算法才能输出三角形,但扩展它实际上并不太困难。
您还可以按照 agg::span_gouraud_rgba 的方式为 AGG 编写一个自定义跨度生成器,但它可以有效地进行纹理映射。