路径笔画算法(转换为三角形/四边形)或其他建议
Path stroke algorithm (convert to triangles/quads) or other suggestions
有人知道一个很好的算法转换矢量路径到一个笔画路径,是由三角形/四边形的面?理想情况下使用圆线连接。
基本上,我想画一条粗的路径,它的颜色是基于一个值,这个值随着路径上的距离而变化。我正在考虑将路径转换为三角形/四边形并通过提供沿着路径的距离作为1d纹理坐标来对其进行纹理映射,然后可以使用它来检索三角形角落的颜色并进行插值。如果有任何其他的建议,如何做到这一点,不会看起来很糟糕,可以反混叠,我将不胜感激。
我正在使用AGG进行渲染,目前,但我可能会使用替代方案,提供它没有太多的依赖关系。我想用于渲染的后端并不重要。虽然AGG可以描边路径,但VertexSource接口不允许除x/y坐标之外的其他顶点信息。此外,当使用正常的conv_stroke时,将我的颜色映射到光栅化器中看起来不可行。
这里有另一个很好的资源,可以帮助您理解描边路径的机制。
对于任何寻找解决方案的人,我发现这很有用:https://keithp.com/keithp/谈判/cairo2003.pdf
因此,您可以有效地将正多边形与直线进行卷积以生成网格。为了输出三角形,需要一个比pdf中概述的稍微复杂的算法,但实际上扩展它并不太难。
您还可以按照AGG::span_gouraud_rgba的行为AGG编写自定义span生成器,但它可以有效地进行纹理映射。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- 在其他文件中创建类时在 c++ 项目中不起作用
- 类与私有变量的其他类之间的线程安全性
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- GlobalAlloc而不是其他分配方法
- C++从其他 constexpr 创建 lambda 不能按顺序执行 Constexpr
- 四边形的 2D 旋转
- 断言中的Fold表达式在某些计算机上编译,但在其他计算机上不编译
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 结构和双指针隐藏在其他结构中,多层混淆
- UE4在OnComponentBeginOverlap上铸造其他actor
- 当我在其中一个线程执行中(在activemq-cpp中)捕获到特定值时,我如何终止/停止所有其他线程
- MESI协议和std::atomic-它是否确保所有写入立即对其他线程可见?
- 保留对其他类的成员函数的引用
- OpenGL将纹理四边形渲染为(0,0)
- 路径笔画算法(转换为三角形/四边形)或其他建议