我有一条b样条曲线。我有所有的结点,以及控制点的x,y坐标。
我需要把b样条曲线转换成贝塞尔曲线。
我的最终目标是能够在html5画布元素上绘制形状。b样条来自不支持bezier的dxf文件,而画布只支持bezier。
我找到了几篇试图解释这个过程的文章,但是它们有点超出我的理解范围,而且似乎真的非常理论化。我真的需要一个例子或一步一步的帮助。
以下是我的发现:(解释b样条),(转换为贝塞尔曲线),(Javascript示例)最后一个链接很好,因为它包含实际的代码,但是它似乎没有考虑到节点分配的权重。我认为这一点很重要,因为它似乎会影响曲线是否通过控制点。
我可以分享我的节点或控制点,如果这将是有用的。如果有人能给我指出一个循序渐进的过程,或者帮助我编写一些伪代码,我将非常感激。我写了一个简单的三次b样条Boehm算法的Javascript实现。这是一个涉及极值的相当直接的实现,在6.3节中描述:计算机辅助几何设计- Sederberg
如果你只是对实现感兴趣,我在这里链接了我写的类:bspline .js
这可能会有帮助- https://github.com/Tagussan/BSpline
我的项目已经移动,我不再需要它,但这似乎是一个非常有用的方式来饲料控制点,并有一个曲线绘制。