我有一个由二维点列表组成的路径。我想把这些变成一条三角形,以渲染一条具有指定厚度的纹理线(以及其他类似的东西)。所以本质上,二维点列表需要成为一个顶点列表,指定多边形的轮廓,如果渲染将渲染线条。问题在于处理角连接、斜接、帽等。生成的多边形需要在没有过度绘制、干净连接等的意义上是“完美的”,以便它可以被挤出或以其他方式玩弄。
是否有任何简单的资源可以提供算法洞察力、代码或更多关于有效执行此操作的信息?
我绝对不想要一个完整的 2D 矢量库(cairo、antigrain、OpenVG 等),其中包含曲线、弧线、破折号和所有的花里胡哨。我一直在为 OpenVG 实现和其他东西挖掘多个源代码树以找到一些见解,但这一切都非常令人费解。
我绝对愿意自己编写代码,但是有许多退化的情况(小段 + 粗宽度 + 尖角)会产生各种连接问题。即使是一点点帮助,也能节省我处理所有这些问题的时间。
编辑:如果你只是从一个顶点到另一个顶点,这是一个导致丑陋的退化案例之一的例子。红色是原始路径。橙色块是以指定宽度绘制的矩形,对齐并以每个线段为中心。