我有一个B样条曲线。我有所有的结,以及控制点的x,y坐标。
我需要将B样条曲线转换为贝塞尔曲线。
我的最终目标是能够在html5 canvas元素上绘制形状。 B-Spline来自一个不支持Beziers的dxf文件,而一个画布只支持Beziers。
我发现了几篇试图解释这个过程的文章,但是它们有点过头了,而且看起来非常理论化。我真的需要一个例子或一步一步的帮助。
这是我发现的: (Explains B-Splines),(Converting to Beziers),(Javascript Example)
最后一个链接很好,因为它包含实际代码,但它似乎没有考虑节点分配的权重。我认为这很重要,因为它似乎会影响曲线是否通过控制点。
如果有用,我可以分享我的节点或控制点。如果有人会指出我一步一步的程序或帮助我使用一些伪代码(或实际代码),我将非常感激。
答案 0 :(得分:1)
我曾经为立方B-Splines编写了一个简单的Javascript实现Boehm算法。这是一个涉及极值的相当简单的实现,在6.3节中描述:Computer Aided Geometric Design- Sederberg
如果您只是对实施感兴趣,我已将我在此处写的课程联系起来:bsplines.js
答案 1 :(得分:0)
这可能会有所帮助 - https://github.com/Tagussan/BSpline
我的项目已经开始,我不再需要它,但这似乎是一种非常有用的方式来提供控制点并绘制曲线。