function svgAngle( ux, uy, vx, vy ) {

			const dot = ux * vx + uy * vy;
			const len = Math.sqrt( ux * ux + uy * uy ) * Math.sqrt( vx * vx + vy * vy );
			let ang = Math.acos( Math.max( - 1, Math.min( 1, dot / len ) ) ); // floating point precision, slightly over values appear
			if ( ( ux * vy - uy * vx ) < 0 ) ang = - ang;
			return ang;

		}
https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes
https://mortoray.com/2017/02/16/rendering-an-svg-elliptical-arc-as-bezier-curves/ Appendix: Endpoint to center arc conversion
From
rx ry x-axis-rotation large-arc-flag sweep-flag x y
To
aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation