将B样条转换为贝塞尔曲线

时间:2013-06-11 21:00:09

标签: javascript html5-canvas spline dxf bspline

我有一个B样条曲线。我有所有的结,以及控制点的x,y坐标。

我需要将B样条曲线转换为贝塞尔曲线。

我的最终目标是能够在html5 canvas元素上绘制形状。 B-Spline来自一个不支持Beziers的dxf文件,而一个画布只支持Beziers。

我发现了几篇试图解释这个过程的文章,但是它们有点过头了,而且看起来非常理论化。我真的需要一个例子或一步一步的帮助。

这是我发现的: (Explains B-Splines)(Converting to Beziers)(Javascript Example)

最后一个链接很好,因为它包含实际代码,但它似乎没有考虑节点分配的权重。我认为这很重要,因为它似乎会影响曲线是否通过控制点。

如果有用,我可以分享我的节点或控制点。如果有人会指出我一步一步的程序或帮助我使用一些伪代码(或实际代码),我将非常感激。

2 个答案:

答案 0 :(得分:1)

我曾经为立方B-Splines编写了一个简单的Javascript实现Boehm算法。这是一个涉及极值的相当简单的实现,在6.3节中描述:Computer Aided Geometric Design- Sederberg

如果您只是对实施感兴趣,我已将我在此处写的课程联系起来:bsplines.js

答案 1 :(得分:0)

这可能会有所帮助 - https://github.com/Tagussan/BSpline

我的项目已经开始,我不再需要它,但这似乎是一种非常有用的方式来提供控制点并绘制曲线。