dl[a_,b_]:=Sqrt[Plus@@((b-a)^2)] (* dlugosc odcinka ab *)
dlp[p_,a_]:=Abs[p.Append[a,1]]/Sqrt[p[[1]]^2+p[[2]]^2] (* odleglosc punktu a od prostej p *)
pr[a_,b_]:={-(a[[2]]-b[[2]]),(a[[1]]-b[[1]]),-Det[{a,b}]} (* prosta przechodzaca przez punkty a i b *)
tr[a_,b_,c_]:=dl[a,b]+dl[b,c]+dl[c,a]≠2*Max[dl[a,b],dl[b,c],dl[c,a]]
rso[a_,b_,c_]:=Flatten[{x,y}/.NSolve[{dl[a,{x,y}]^2==dl[b,{x,y}]^2,dl[a,{x,y}]^2==dl[c,{x,y}]^2},{x,y}]];
ro[a_,b_,c_]:=dl[a,rso[a,b,c]];
rsw[a_,b_,c_]:=If[Length[Flatten[NSolve[{dlp[pr[a,b],{x,y}]^2==dlp[pr[a,c],{x,y}]^2,dlp[pr[a,b],{x,y}]^2==dlp[pr[b,c],{x,y}]^2},{x,y}]]]>0,Flatten[Select[Select[Select[Select[{x,y}/.NSolve[{dlp[pr[a,b],{x,y}]^2==dlp[pr[a,c],{x,y}]^2,dlp[pr[a,b],{x,y}]^2==dlp[pr[b,c],{x,y}]^2},{x,y}]
,#[[2]]<Max[Last/@{a,b,c}]&]
,#[[2]]>Min[Last/@{a,b,c}]&]
,#[[1]]>Min[First/@{a,b,c}]&]
,#[[1]]<Max[First/@{a,b,c}]&]]];
rw[a_,b_,c_]:=dlp[pr[a,b],rsw[a,b,c]];
Off[InverseFunction::ifun]

Manipulate[Graphics[{Point[{a,b,c}],
Text["A",a,{0,1}],Text["B",b,{0,1}],Text["C",c,{0,1}],
If[tr[a,b,c],{
If[Length[Cases[rso[a,b,c],_?NumberQ]]>0&&oo,{Red,Point[rso[a,b,c]],Circle[rso[a,b,c],ro[a,b,c]]},{Point[a]}],
If[Length[Cases[rsw[a,b,c],_?NumberQ]]>0&&ow,{Blue,Point[rsw[a,b,c]],Circle[rsw[a,b,c],rw[a,b,c]]},{Point[b]}],
If[t,Line[{a,b,c,a}],{Point[c]}],{Point[a]}}]},PlotRange->{{-2.5,8.5},{-1.5,6.5}}],
Row[{Control[{{a,{0,1}},{-2,-1},{8,6}}],
Control[{{b,{6,1}},{-2,-1},{8,6}}],
Control[{{c,{3,5}},{-2,-1},{8,6}}]},Spacer[20],ImageSize->{342,83},FrameMargins->0],
Row[{Row[{""},ImageSize->{0,20}],
Row[{Dynamic[a]},ImageSize->{80,20},Alignment->Center],
Row[{""},ImageSize->{12,20}],
Row[{Dynamic[b]},ImageSize->{80,20},Alignment->Center],
Row[{""},ImageSize->{12,20}],
Row[{Dynamic[c]},ImageSize->{80,20},Alignment->Center]},Spacer[10]],
Row[{Control[{{t,True,"Trójkąt"},{True,False}}],Control[{{ow,True,Style["Okrąg wpisany",Blue]},{True,False}}],Control[{{oo,True,Style["Okrąg opisany",Red]},{True,False}}]},Spacer[20]]]

Manipulate[Graphics[{Point[{a,b,c}],
Text["A",a,{0,1}],Text["B",b,{0,1}],Text["C",c,{0,1}]
,If[tr[a,b,c],{
If[Length[Cases[rso[a,b,c],_?NumberQ]]>0&&oo,{Red,Point[rso[a,b,c]],Circle[rso[a,b,c],ro[a,b,c]]},{Point[a]}],
If[Length[Cases[rsw[a,b,c],_?NumberQ]]>0&&ow,{Blue,Point[rsw[a,b,c]],Circle[rsw[a,b,c],rw[a,b,c]]},{Point[b]}],
If[t,Line[{a,b,c,a}],{Point[c]}]},Point[a]]
},PlotRange->{{-2.5,8.5},{-1.5,6.5}}],
Row[{Control[{{a,{0,1}},{-2,-1},{8,6}}],
Control[{{b,{6,1}},{-2,-1},{8,6}}],
Control[{{c,{3,5}},{-2,-1},{8,6}}]},Spacer[20],ImageSize->{342,83},FrameMargins->0],
Row[{Row[{""},ImageSize->{0,20}],
Row[{Dynamic[a]},ImageSize->{80,20},Alignment->Center],
Row[{""},ImageSize->{12,20}],
Row[{Dynamic[b]},ImageSize->{80,20},Alignment->Center],
Row[{""},ImageSize->{12,20}],
Row[{Dynamic[c]},ImageSize->{80,20},Alignment->Center]},Spacer[10]],
Row[{Row[{"Trójkąt",Checkbox[Dynamic[t],{False,True},Enabled->Dynamic[tr[a,b,c]]]},Spacer[5]],Row[{Style["Okrąg wpisany",Blue],Checkbox[Dynamic[ow],{False,True},Enabled->Dynamic[tr[a,b,c]]]},Spacer[5]],Row[{Style["Okrąg opisany",Red],Checkbox[Dynamic[oo],{False,True},Enabled->Dynamic[tr[a,b,c]]]},Spacer[5]]},Spacer[20]]]