Javascript Catmull Rom样条线到贝塞尔样条线转换器

Javascript Catmull Rom样条线到贝塞尔样条线转换器,javascript,canvas,snap.svg,Javascript,Canvas,Snap.svg,我正在尝试将catmullRom2bezier函数从移植到canvas (我只对封闭路径使用它): 功能catmullRom2bezier(pts){ 变量立方=[]; 对于(变量i=0,iLen=pts.length;i

我正在尝试将catmullRom2bezier函数从移植到canvas (我只对封闭路径使用它):

功能catmullRom2bezier(pts){
变量立方=[];
对于(变量i=0,iLen=pts.length;i
以下是我尝试使用它的方式:

ctx.beginPath();

var cubics = catmullRom2bezier(points);

for( var i = 0; i < cubics.length; i++ ){
    ctx.bezierCurveTo(cubics[i][0],cubics[i][1],cubics[i][2],cubics[i][3],cubics[i][4],cubics[i][5]);
}

ctx.fill();
ctx.beginPath();
变量立方体=catmullRom2bezier(点);
对于(变量i=0;i

但我肯定错过了一些东西,因为生成的路径不是完全圆的。

Spencer Cohen已经为canvas实现了Catmull Rom——除非你想自己体验一下:谢谢,这真的很有帮助!
ctx.beginPath();

var cubics = catmullRom2bezier(points);

for( var i = 0; i < cubics.length; i++ ){
    ctx.bezierCurveTo(cubics[i][0],cubics[i][1],cubics[i][2],cubics[i][3],cubics[i][4],cubics[i][5]);
}

ctx.fill();