This code sample demonstrates how to compute the intersection with a circle of radius 1, and many oriented lines. Technically, oriented lines are equivalent to half-planes.
The function circle_line_intersection is doing all the work. The lines are specified as the 3 parameters of a 2d line equation, ax + by + c = 0. The function returns a list of pairs of points : the extremities of each arcs in counterclock wise order.