Como faço para renderizar linhas 2D grossas como polígonos?

Eu tenho um caminho composto por uma lista de pontos 2D. Quero transformá-los em uma faixa de triângulos para renderizar uma linha texturizada com uma espessura especificada (e outras coisas semelhantes). Portanto, essencialmente, a lista de pontos 2D precisa se tornar uma lista de vértices, especificando o contorno de um polígono que, se renderizado, renderizaria a linha. O problema é lidar com as junções de canto, mitras, tampas etc. O polígono resultante precisa ser "perfeito" no sentido de não extrapolar, junções limpas etc. para que possa ser extrudado ou brincad

Há algunssimple recursos que podem fornecer informações sobre o algoritmo, código ou mais informações sobre como fazer isso com eficiênci

EU absolutamente NÃO quero uma biblioteca de vetores 2D completa (cairo, antigrain, OpenVG, etc.) com curvas, arcos, traços e todos os sinos e assobios. Venho pesquisando em várias árvores de origem para implementações do OpenVG e outras coisas, para encontrar algumas dicas, mas tudo é terrivelmente complicad

Definitivamente, estou disposto a codificá-lo, mas há muitos casos degenerados (pequenos segmentos + larguras grossas + cantos afiados) que criam todos os tipos de problemas de junção. Mesmo uma pequena ajuda me pouparia horas tentando lidar com todos ele

EDIT: Aqui está um exemplo de um desses casos degenerados que causa feiura se você simplesmente fosse de vértice para vértice. Vermelho é o caminho original. Os blocos laranja são retângulos desenhados em uma largura especificada alinhada e centralizada em cada segment

questionAnswers(9)

yourAnswerToTheQuestion