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 );