JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.4/raphael-min.js"></script>
<div id='test'></div>

JavaScript

var p1 = 'M50,100a50,50 0 1,0 100,0a50,50 0 1,0 -100,0';
var p2 = 'M0,50a50,50 0 1,0 100,0a50,50 0 1,0 -100,0';

var r = Raphael('test',800,800);

var path1 = r.path(p1);
var path2 = r.path(p2);

var intersect = Raphael.pathIntersection( p1, p2 );

console.log( intersect[1] );

//r.path( p3 ).attr({ stroke: 'red' });
//console.log( path1 );

var path3 = r.path( 'M50,100' + path1.attrs.path[1] ).attr({ stroke: 'red' });
var path3Len = path3.getTotalLength();

var subPath = path3.getSubpath(path3Len * intersect[0].t1, path3Len * intersect[1].t2 );

//console.log( path3 );