2

我试图使用公式沿着 2d 轴制作平滑线 - 使用贝塞尔曲线和画布。我有这个- 不是很有效。当你看到我的链接时——它太接近了——但公式还不够。请帮忙!:) 我也不想使用像纸 js 这样的库。

这是主要代码:

function getControlPoints(x0,y0,x1,y1,x2,y2,sion){

    var d01=Math.sqrt(Math.pow(x1-x0,2)+Math.pow(y1-y0,2));
    var d12=Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));

    var fa=sion*d01/(d01+d12);   // scaling factor for triangle Ta
    var fb=sion*d12/(d01+d12);   // ditto for Tb, simplifies to fb=t-fa
    var p1x=x1-fa*(x2-x0);    // x2-x0 is the width of triangle T
    var p1y=y1-fa*(y2-y0);    // y2-y0 is the height of T
    var p2x=x1+fb*(x2-x0);
    var p2y=y1+fb*(y2-y0);  
    return [p1x,p1y,p2x,p2y];
}
4

0 回答 0