Sea*_*yne 24 graphics bezier cad
我正在尝试创建一个"平行"贝塞尔曲线.在我的尝试中,我已经接近但没有雪茄.我试图在2条曲线(红色,蓝色)之间保持稳定的1px偏移.
我的主要目标是使用边缘偏离algorythm来扩展/缩小svg路径.
解
对于正在寻找解决方案的其他人,我创建了一个AS3版本.
http://seant23.wordpress.com/2010/11/12/offset-bezier-curves/
erk*_*ene 10
来自维基百科:(http://en.wikipedia.org/wiki/B%C3%A9zier_curve)
在给定Bézier曲线的固定偏移处的曲线,通常称为偏移曲线(与原始曲线"平行",如铁轨中的轨道之间的偏移),不能由Bézier曲线精确地形成(除了某些曲线)琐碎的案例).然而,有一些启发式方法通常可以为实际目的提供足够的近似值.
您可能还会看到此处所示的纸张: 立方贝塞尔曲线行程的概述
通常不可能将三次贝塞尔曲线的偏移表示为三次贝塞尔曲线(具体地说,当您的尖点或曲率半径接近偏移距离时,这是有问题的).但是,您可以将偏移量逼近任何精度水平.
试试这个:
我没有实现一个偏移量(因为我使用的内核已经有一个),但这似乎是要尝试的东西.
您要求的是数学中的平行或偏移曲线.Bezier曲线上的维基百科文章(上面引用的其他文章)未能链接到"偏移曲线"的正确文章,但我几秒前就已经解决了这个问题.在矢量图形的世界中,同样的概念被称为抚摸路径.
通常,对于立方/贝塞尔曲线,偏移曲线是10阶多项式!资料来源:Kilgard,p.28
如果您只想光栅化这样的偏移曲线,而不是计算它们的分析形式,您可以查看ghostscript的来源.您还可以查看此专利申请,了解NV_path_rendering是如何做到的.
如果你想隐藏/近似偏移曲线,那么MetaFog上用于覆盖METAFONT到PostScript字体的TUG论文是一个很好的阅读.早于PostScript的METAFONT系统允许通过(更具数学复杂性)的描边操作来描述字体,但PostScript Type 1字体仅允许使用填充(与一般的PostScript绘图不同)出于速度的原因.
Gernot Hoffmann在本文的第7部分给出了另一种算法,用于将偏移近似为(仅两个)Beziers(每侧一个),并使用PostScript中的代码.(给OpenGL论坛上的某个人提示找到它.)
实际上有很多这样的算法.我找到了1997年用于近似偏移曲线的各种算法的调查.他们假设祖先曲线是Beziers或NURBS.
归档时间: |
|
查看次数: |
10827 次 |
最近记录: |