trasf[{x_,y_}]:={x/(x^2+y^2),y/(x^2+y^2)}

asseqpar[{x1_,y1_},{x2_,y2_}]:=If[y1==y2,{(x1+x2)/2,y},{x,Expand[(2x*(x2-x1)+x1^2-x2^2+y1^2-y2^2)/(2(y1-y2))]}]

crf[{xc_,yc_},r_][t_]:={xc+r*Cos[t],yc+r*Sin[t]}

rettaeq[{x1_,y1_},{x2_,y2_}]:=Block[{asse=asseqpar[{x1,y1},{x2,y2}],asset=asseqpar[{x2,y2},trasf[{x2,y2}]],centro,raggio},
centro=asse /.Solve[asse==asset][[1]];
raggio=Norm[centro-{x1,y1}];
Return[crf[centro,raggio][t]]
]

Manipulate[Show[{Graphics[{Circle[{0,0},1],PointSize[.02],Blue,Point[{p1,p2}],Text[Style["(Subscript[P, 1])",Medium],p1,{-1.5,-1.5}],Text[Style["(Subscript[P, 2])",Medium],p2,{-1.5,-1.5}],Red,Point[trasf[p2]],Line[{p1,p2}],Line[{p2,trasf[p2]}]},PlotRange->{{-2,2},{-2,2}},ImageSize->200,Axes->True],ParametricPlot[rettaeq[p1,p2],{t,0,2Pi}],ParametricPlot[asseqpar[p1,p2],{x,-2,2}],ParametricPlot[asseqpar[p2,trasf[p2]],{x,-2,2}]}],{{p1,{0.8,0}},Locator,Appearance->None},{{p2,{0.2,0.7}},Locator,Appearance->None}]

?RegionFunction

Manipulate[Show[{Graphics[{Circle[{0,0},1],PointSize[.02],Blue,Point[{p1,p2,p3}],Text[Style["(Subscript[P, 1])",Medium],p1,{-1.5,-1.5}],Text[Style["(Subscript[P, 2])",Medium],p2,{-1.5,-1.5}],Text[Style["(Subscript[P, 3])",Medium],p3,{-1.5,-1.5}]},PlotRange->{{-1.2,1.2},{-1.2,1.2}},ImageSize->300,Axes->True],ParametricPlot[{rettaeq[p1,p2],rettaeq[p1,p3],rettaeq[p2,p3]},{t,0,2Pi},RegionFunction->Function[{x,y},x^2+y^2<1]]}],{{p1,{0.1,-0.2}},Locator,Appearance->None},{{p2,{0.2,0.2}},Locator,Appearance->None},{{p3,{-0.4,0.3}},Locator,Appearance->None}]