docs: public void curveStart()
      {
          double d0 = AbstractPoint.angle(P[start], P[start+3]);      // P0 -> P3
          double d1 = AbstractPoint.angle(P[start+3], P[start]);      // P3 -> P0
          double d2 = AbstractPoint.angle(P[start+3], P[start+2]);    // P3 -> P2
          double a1 = d1 - d2;
          double a2 = d0 + a1;
          double di = AbstractPoint.distance(P[start+3], P[start+2]);
          P[start+1] = AbstractPoint.move(P[start], a2, di);
      }