Math 三次bezier曲线笔划轮廓
对于三次贝塞尔曲线的笔划,我的意思是渲染一条具有特定线宽“w”的曲线“a”Math 三次bezier曲线笔划轮廓,math,bezier,Math,Bezier,对于三次贝塞尔曲线的笔划,我的意思是渲染一条具有特定线宽“w”的曲线“a” 如何推导出描述贝塞尔“A”笔划轮廓的其他三次贝塞尔曲线?Ohhh。要获取贝塞尔曲线的偏移曲线 坏消息。这很难,因为这些曲线不能简单地用数值推导出来。它们包含各种交叉点、环路和其他讨厌的东西 不过也有一些近似值。到目前为止,我读到的最好的方法是托马斯·海恩(Thomas F.Hain)的一篇论文() 他进行展平,所以他的论文主要是关于将偏移曲线分解为直线段和圆弧段,但您可以稍后将它们合并回beziers 为了更好地理解,您
如何推导出描述贝塞尔“A”笔划轮廓的其他三次贝塞尔曲线?Ohhh。要获取贝塞尔曲线的偏移曲线 坏消息。这很难,因为这些曲线不能简单地用数值推导出来。它们包含各种交叉点、环路和其他讨厌的东西 不过也有一些近似值。到目前为止,我读到的最好的方法是托马斯·海恩(Thomas F.Hain)的一篇论文() 他进行展平,所以他的论文主要是关于将偏移曲线分解为直线段和圆弧段,但您可以稍后将它们合并回beziers
为了更好地理解,您可能还需要阅读他其他与贝塞尔相关的论文。Qt的QPainterPathStroker(它是开源的,可读性很强的代码)使用上述论文中描述的算法来做您想做的事情。要做到准确,正如其他人所解释的那样非常困难。偏移曲线不是三次贝塞尔曲线,非常棘手。然后,比偏移深的凹度会导致相交问题 好消息是,通常需要计算笔划偏移以进行渲染,因此只需要像素精度。此外,如果遵守多边形填充的缠绕规则,则各种交点仍会创建填充多边形。因此,首先展平曲线,然后以线性方式偏移,这将成为一个直线多边形问题 这里的一些代码可以用作参考实现:
该论文也在citeseerx上:如果有人在寻找,目前链接到Hain论文的链接是: