JSFiddle - React, Tailwind, and code Playground

JavaScript

function quadraticBezierLength(x1, y1, x2, y2, x3, y3) {
  let a, b, c, d, e, u, a1, e1, c1, d1, u1, v1x, v1y;

  v1x = x2 * 2;
  v1y = y2 * 2;
  d = x1 - v1x + x3;
  d1 = y1 - v1y + y3;
  e = v1x - 2 * x1;
  e1 = v1y - 2 * y1;
  c1 = a = 4 * (d * d + d1 * d1);
  c1 += b = 4 * (d * e + d1 * e1);
  c1 += c = e * e + e1 * e1;
  c1 = 2 * Math.sqrt(c1);
  a1 = 2 * a * (u = Math.sqrt(a));
  u1 = b / u;
  a = 4 * c * a - b * b;
  c = 2 * Math.sqrt(c);
  return (
    (a1 * c1 + u * b * (c1 - c) + a * Math.log((2 * u + u1 + c1) / (u1 + c))) /
    (4 * a1)
  );
}

function quadraticBezierArcLength(t, x1, y1, x2, y2, x3, y3) {
  let a, b, c, d, e, e1, d1, v1x, v1y;

  v1x = x2 * 2;
  v1y = y2 * 2;
  d = x1 - v1x + x3;
  d1 = y1 - v1y + y3;
  e = v1x - 2 * x1;
  e1 = v1y - 2 * y1;
  a = 4 * (d * d + d1 * d1);
  b = 4 * (d * e + d1 * e1);
  c = e * e + e1 * e1;
  //a = 4 * c * a - b * b;
  //c = 2 * Math.sqrt(c);

  const bt = b / (2 * a),
    ct = c / a,
    ut = t + bt,
    k = ct - bt ** 2;

  return (
    (Math.sqrt(a) / 2) *
    (ut * Math.sqrt(ut ** 2 + k) -
      bt * Math.sqrt(bt ** 2 + k) +
      k *
        Math.log((ut + Math.sqrt(ut ** 2 + k)) / (bt + Math.sqrt(bt ** 2 + k))))
  );
}

function original(t, x0, y0, x1, y1, x2, y2) {
{
    let ax,ay,bx,by,A,B,C,b,c,u,k,L;
    ax=x0-x1-x1+x2;
    ay=y0-y1-y1+y2;
    bx=x1+x1-x0-x0;
    by=y1+y1-y0-y0;
    A=4.0*((ax*ax)+(ay*ay));
    B=4.0*((ax*bx)+(ay*by));
    C=     (bx*bx)+(by*by);
    b=B/(2.0*A);
    c=C/A;
    u=t+b;
    k=c-(b*b);
    L=0.5*Math.sqrt(A)*
        (
         (u*Math.sqrt((u*u)+k))
        -(b*Math.sqrt((b*b)+k))
        +(k*Math.log(Math.abs((u+Math.sqrt((u*u)+k))/(b+Math.sqrt((b*b)+k)))))
        );
    return L;
    }
}
let tx1 = 1, ty1 = 1, tx2 = 9, ty2 = 4.3, tx3 = 2.5, ty3 = 11.3;

let v1 = quadraticBezierLength(tx1, ty1, tx2, ty2, tx3, ty3);
let v2 = quadraticBezierArcLength(1, tx1, ty1, tx2, ty2, tx3, ty3);
let v3 = original(1, tx1, ty1, tx2, ty2, tx3,...