Malfatti Circles

Author

Eric W. Weisstein
December 7, 2004

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/MalfattiCircles.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/MalfattiCircles.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Additional Authors

System of equations solved by
Michael Trott
August 17, 2003

Code

Unit[v_]:=v/Norm[v]

MalfattiCircles[t_Triangle]:=Module[{eqns,soln,r1,r2,r3,d1,d2,d3,a,b,c
},
{a,b,c}=SideLengths[Evaluate[t]];
eqns={
4r1 r2==(d1+d2-c)^2,
4r2 r3==(d2+d3-a)^2,
4r1 r3==(d1+d3-b)^2,
2 b c ((d1^2)-(r1^2))==((d1^2)+(r1^2))(-a^2+(b^2) +(c^2) ),
2 a c ((d2^2)-(r2^2))== ((d2^2)+(r2^2))(a^2-(b^2)+(c^2)),2 a b ((d3^2)-(r3^2))== ((d3^2)+(r3^2))(a^2+b^2-c^2)
};
Off[FindRoot::"precw"];
soln=Last/@FindRoot[eqns,Evaluate[Sequence@@({#,Max[a,b,c]/3}&/@{r1,r2,r3,d1,d2,d3})],WorkingPrecision->30];
On[FindRoot::"precw"];
Circle[#1-Sqrt[#2^2+#3^2]#4,#2]&@@@Transpose[{Vertices[t],Sequence@@Partition[soln,3],Unit/@Subtract@@@(Coordinates/@AngleBisectors[t])}]
]

Area Condition (don't need to use)

Area[{a,b,c}]

Simplify[Area[{r1+r2,r2+r3,r3+r1}]]

d1 r1+d2 r2+d3 r3+(r1+r2)^2/2+(r1+r3)^2/2+(r2+r3)^2/2+Area[{r1+r2,r2+r3,r3+r1}]==Area[{d1+r1+r2+d2,d2+r2+r3+d3,d3+r1+r3+d1}]

Simplify Angle Condition

DistanceTrilinears[Tan[A/2]/.Tan[x_]:>Sin[2x]/(1+Cos[2x])]

FullSimplify[Together//@%,TriangleQ[]]

(1/((-a+b+c)))(Sqrt[(((a+b-c) (a-b+c)(-a+b+c))/( (a+b+c)))])

Inradius[]

FullSimplify[((2Inradius[])/(b+c-a))-((Sqrt[1-((((-(a^2)+(b^2)+(c^2)))^2)/(4 (b^2) (c^2)))])/(1+((-(a^2)+(b^2)+(c^2))/(2 b c)))),TriangleQ[]]

ang=Simplify[Numerator/@Together/@{(((2Inradius[])/(b+c-a)))^2-(r1/d1)^2,
(((2Inradius[])/(-b+c+a)))^2-(r2/d2)^2,
(((2Inradius[])/(b-c+a)))^2-(r3/d3)^2}]

Simplify[{2 b c ((d1^2)-(r1^2))-((d1^2)+(r1^2))(-a^2+(b^2)+(c^2) ),2 a c ((d2^2)-(r2^2))- ((d2^2)+(r2^2))(a^2-(b^2)+(c^2)),2 a b ((d3^2)-(r3^2))- ((d3^2)+(r3^2))(a^2+b^2-c^2)}/ang]

FullSimplify[Expand[(r1+r2)^2-(r2-r1)^2]]

Cartesian Derivation

eqns={
4r1 r2==(d1+d2-c)^2,
4r2 r3==(d2+d3-a)^2,
4r1 r3==(d1+d3-b)^2,
2 b c ((d1^2)-(r1^2))==((d1^2)+(r1^2))(-a^2+(b^2) +(c^2) ),
2 a c ((d2^2)-(r2^2))== ((d2^2)+(r2^2))(a^2-(b^2)+(c^2)),
2 a b ((d3^2)-(r3^2))== ((d3^2)+(r3^2))(a^2+b^2-c^2)
}

Solution given in Fukagawa

t=Triangle[a,b,c]/.{a->507,b->375,c->252}

Angles[t]//N

2.ArcTan/@{64/252,1125/20/135,36/27}

SideLengths[Evaluate[t]]

DistanceTrilinears[eqns/.{d1->r1 Cot[A/2],d2->r2 Cot[B/2],d3->r3 Cot[C/2]}]/.Thread[{a,b,c}->SideLengths[Evaluate[t]]]/.Thread[{r1,r2,r3}->{64,1125/20,36}]//FullSimplify

{r1 Cot[A/2],r2 Cot[B/2],r3 Cot[C/2]}/.Thread[{A,B,C}->Angles[t]]/.Thread[{r1,r2,r3}->{64,1125/20,36}]//FullSimplify

eqns/.
Thread[{r1,r2,r3}->{64,1125/20,36}]/.
Thread[{d1,d2,d3}->{252,135,27}]/.
Thread[{a,b,c}->{252,375,507}]

Unit[v_]:=v/Norm[v]

With[{
a=507,b=375,c=252,
d1=252,d2=135,d3=27,
r1=64,r2=1125/20,r3=36},
Show[Graphics[{
t,
Circle[#1-Sqrt[#2^2+#3^2]#4,#2]&@@@Transpose[{Vertices[t],{r1,r2,r3},{d1,d2,d3},Unit/@Subtract@@@(Coordinates/@AngleBisectors[t])}]
}],AspectRatio->Automatic]
]

Numerically

FindRoot[eqns/.Thread[{a,b,c}->{252,375,507}],Evaluate[Sequence@@({#,100}&/@{r1,r2,r3,d1,d2,d3})],WorkingPrecision->20]

t=Triangle[{{0,0},{1,0},{.1,.6}}];
Show[Graphics[{
{Blue,circ=MalfattiCircles[t]},
t,
{Red,
PointLabels[Transpose[{CircleCenter/@circ,{(Subscript[Γ, A]),(Subscript[Γ, B]),(Subscript[Γ, C])}}],
LabelOffset->.03]
},
PointLabels[Transpose[{VertexPoints[t],{"A","B","C"}}],
LabelOffset->.03]
}],AspectRatio->Automatic,PlotRange->All]

t=Triangle[{{0,0},{1,0},{.1,.6}}];
circ=MalfattiCircles[t];
m=CircleCenter/@circ;
perp=MapIndexed[Drop[#1,#2]&,Outer[PerpendicularLine,m,Sides[t]]];
i=1;
l={0,1,2,2,0,1,1,2,0};squares=MapIndexed[Drop[#1,#2]&,Outer[PerpSquare[{#2,PerpendicularLine[##]},.02,l[[i++]]]&,m,Sides[t]]];

Show[Graphics[{
t,
{Blue,circ,perp,squares,
{Dashing[{.02}],
Line/@Map[Coordinates,Transpose[{m,VertexPoints[t]}],{2}]
}
},
{Purple,
EqualAngleDivisionTicks[t,2,.1,.02,.07],
VertexArcs[t,.1]
},
{Red,
Triangle[Coordinates/@m],
PointLabels[Transpose[{m,{(Subscript[Γ, A]),(Subscript[Γ, B]),(Subscript[Γ, C])}}],LabelOffset->.03]
},
PointLabels[Transpose[{VertexPoints[t],{"A","B","C"}}],
LabelOffset->.03]
}],AspectRatio->Automatic,PlotRange->All]

Symbolically

eqns//ColumnForm

Eliminate[eqns,d1]

Solve[eqns,{r1,r2,r3},{d1,d2,d3}]

Timing[soln=Factor/@GroebnerBasis[Subtract@@@eqns,{r1},{r2,r3,d1,d2,d3},MonomialOrder->EliminationOrder]]

Take[eqns,3]/.Solve[eqns[[2]],r3][[1]]/.Solve[eqns[[1]],r2][[1]]

Solve[eqns[[1]],r2]

Solve[eqns[[2]],r3]

eqn2=FullSimplify/@Numerator/@Together/@((Drop[eqns,2]/.Solve[eqns[[2]],r3][[1]]/.Solve[eqns[[1]],r2][[1]])/.Equal:>Subtract)

Timing[soln2=Factor/@GroebnerBasis[eqn2,{r1},{d1,d2,d3},MonomialOrder->EliminationOrder]]

Michael's Solution

Root[Function[r1,(a-b-c)*(a+b-c)^6*(a-b+c)^6+16*(a-b-c)*(a+b-c)^5*(a-b+c)^5*(a+b+c)*r1+128*(a+b-c)^3*(a-b+c)^3*(a^5-a^3*b^2-a^2*b^3+b^5-3*a^3*b*c+6*a^2*b^2*c-3*a*b^3*c-a^3*c^2+6*a^2*b*c^2+6*a*b^2*c^2-b^3*c^2-a^2*c^3-3*a*b*c^3-b^2*c^3+c^5)*r1^2+128*(a-b-c)*(a+b-c)^3*(a-b+c)^3*(5*a^3+3*a^2*b+3*a*b^2+5*b^3+3*a^2*c-14*a*b*c+3*b^2*c+3*a*c^2+3*b*c^2+5*c^3)*r1^3+128*(a-b-c)*(a+b-c)^2*(a-b+c)^2*(17*a^4-2*a^2*b^2+17*b^4-2*a^2*c^2-2*b^2*c^2+17*c^4)*r1^4+1024*(a-b-c)^2*(a+b-c)^2*(a-b+c)^2*(5*a^2+2*a*b+5*b^2+2*a*c+2*b*c+5*c^2)*r1^5+8192*(a-b-c)^2*(a+b-c)*(a-b+c)*(a^3+b^3+a*b*c+c^3)*r1^6+8192*(a-b-c)^3*(a+b-c)*(a-b+c)*(a+b+c)*r1^7+4096*(a-b-c)^3*(a+b+c)^2*r1^8],1]

TraditionalForm[(soln=(a-b-c)*(a+b-c)^6*(a-b+c)^6+16*(a-b-c)*(a+b-c)^5*(a-b+c)^5*(a+b+c)*r1+128*(a+b-c)^3*(a-b+c)^3*(a^5-a^3*b^2-a^2*b^3+b^5-3*a^3*b*c+6*a^2*b^2*c-3*a*b^3*c-a^3*c^2+6*a^2*b*c^2+6*a*b^2*c^2-b^3*c^2-a^2*c^3-3*a*b*c^3-b^2*c^3+c^5)*r1^2+128*(a-b-c)*(a+b-c)^3*(a-b+c)^3*(5*a^3+3*a^2*b+3*a*b^2+5*b^3+3*a^2*c-14*a*b*c+3*b^2*c+3*a*c^2+3*b*c^2+5*c^3)*r1^3+128*(a-b-c)*(a+b-c)^2*(a-b+c)^2*(17*a^4-2*a^2*b^2+17*b^4-2*a^2*c^2-2*b^2*c^2+17*c^4)*r1^4+1024*(a-b-c)^2*(a+b-c)^2*(a-b+c)^2*(5*a^2+2*a*b+5*b^2+2*a*c+2*b*c+5*c^2)*r1^5+8192*(a-b-c)^2*(a+b-c)*(a-b+c)*(a^3+b^3+a*b*c+c^3)*r1^6+8192*(a-b-c)^3*(a+b-c)*(a-b+c)*(a+b+c)*r1^7+4096*(a-b-c)^3*(a+b+c)^2*r1^8==0)/.r1->(Subscript[r, 1])]

Last/@List@@Roots[soln/.{a->252,b->375,c->507},r1]

Last/@List@@Roots[soln/.{a->b,b->c,c->a}/.{a->252,b->375,c->507},r1]

Last/@List@@Roots[soln/.{a->c,b->a,c->b}/.{a->252,b->375,c->507},r1]

RadiusR1[{a_,b_,c_},n_:6]:=Root[(a-b-c)*(a+b-c)^6*(a-b+c)^6+16*(a-b-c)*(a+b-c)^5*(a-b+c)^5*(a+b+c)*#+128*(a+b-c)^3*(a-b+c)^3*(a^5-a^3*b^2-a^2*b^3+b^5-3*a^3*b*c+6*a^2*b^2*c-3*a*b^3*c-a^3*c^2+6*a^2*b*c^2+6*a*b^2*c^2-b^3*c^2-a^2*c^3-3*a*b*c^3-b^2*c^3+c^5)*#^2+128*(a-b-c)*(a+b-c)^3*(a-b+c)^3*(5*a^3+3*a^2*b+3*a*b^2+5*b^3+3*a^2*c-14*a*b*c+3*b^2*c+3*a*c^2+3*b*c^2+5*c^3)*#^3+128*(a-b-c)*(a+b-c)^2*(a-b+c)^2*(17*a^4-2*a^2*b^2+17*b^4-2*a^2*c^2-2*b^2*c^2+17*c^4)*#^4+1024*(a-b-c)^2*(a+b-c)^2*(a-b+c)^2*(5*a^2+2*a*b+5*b^2+2*a*c+2*b*c+5*c^2)*#^5+8192*(a-b-c)^2*(a+b-c)*(a-b+c)*(a^3+b^3+a*b*c+c^3)*#^6+8192*(a-b-c)^3*(a+b-c)*(a-b+c)*(a+b+c)*#^7+4096*(a-b-c)^3*(a+b+c)^2*#^8&,n]

t=Triangle[{{0,0},{1,0},{.3,.5}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
MalfattiCircles[t]

RadiusR1[SideLengths[Evaluate[t]]]/.rules

Trilinears

eqn2=PerpendicularLine[{α0,β0,γ0},LineEquation[{{1,0,0},{0,0,1}}]]

eqn3=PerpendicularLine[{α0,β0,γ0},LineEquation[{{1,0,0},{0,1,0}}]]

p2=Intersections[Coefficient[eqn2,#]&/@{α,β,γ},{0,1,0}]

p3=Intersections[Coefficient[eqn3,#]&/@{α,β,γ},{0,0,1}]

Together//@ToSidelengths[Distance[p2,{α0,β0,γ0}]^2]

Together//@ToSidelengths[Distance[p3,{α0,β0,γ0}]^2]

Numerical Check

t=Triangle[{{0,0},{1,0},{.3,.5}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];

eqns=-((((a^4)-2 (a^2) (b^2)+(b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+(c^4)) ((β0)^2))/(4 (((a α0+b β0+c γ0))^2)))==-((((a^4)-2 (a^2) (b^2)+(b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+(c^4)) ((γ0)^2))/(4 (((a α0+b β0+c γ0))^2)))==RadiusR1[{a,b,c}]^2&&2Area[]==a α0+b β0+c γ0/.rules

TrilinearToCartesian[t,#]&/@({α0,β0,γ0}/.NSolve[eqns,{α0,β0,γ0}])

MalfattiCircles[t]

RadiusR1[SideLengths[Evaluate[t]]]/.rules

Analytic

soln=Solve[-((((a^4)-2 (a^2) (b^2)+(b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+(c^4)) ((β0)^2))/(4 (((a α0+b β0+c γ0))^2)))==-((((a^4)-2 (a^2) (b^2)+(b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+(c^4)) ((γ0)^2))/(4 (((a α0+b β0+c γ0))^2)))==RadiusR1[{a,b,c}]^2&&2Area[]==a α0+b β0+c γ0,{α0,β0,γ0}];

TrilinearToCartesian[t,#]&/@({α0,β0,γ0}/.(soln/.rules))

soln[[1]]

beta=Factor/@CoefficientList[First[β0/.soln[[1]]][x],x]

gamma=Factor/@CoefficientList[First[γ0/.soln[[1]]][x],x]

beta==gamma

alphapoly=Root[(a^13)-(a^12) b-6 (a^11) (b^2)+6 (a^10) (b^3)+15 (a^9) (b^4)-15 (a^8) (b^5)-20 (a^7) (b^6)+20 (a^6) (b^7)+15 (a^5) (b^8)-15 (a^4) (b^9)-6 (a^3) (b^10)+6 (a^2) (b^11)+a (b^12)-(b^13)-(a^12) c+12 (a^11) b c-6 (a^10) (b^2) c-60 (a^9) (b^3) c+45 (a^8) (b^4) c+120 (a^7) (b^5) c-100 (a^6) (b^6) c-120 (a^5) (b^7) c+105 (a^4) (b^8) c+60 (a^3) (b^9) c-54 (a^2) (b^10) c-12 a (b^11) c+11 (b^12) c-6 (a^11) (c^2)-6 (a^10) b (c^2)+90 (a^9) (b^2) (c^2)-30 (a^8) (b^3) (c^2)-300 (a^7) (b^4) (c^2)+180 (a^6) (b^5) (c^2)+420 (a^5) (b^6) (c^2)-300 (a^4) (b^7) (c^2)-270 (a^3) (b^8) (c^2)+210 (a^2) (b^9) (c^2)+66 a (b^10) (c^2)-54 (b^11) (c^2)+6 (a^10) (c^3)-60 (a^9) b (c^3)-30 (a^8) (b^2) (c^3)+400 (a^7) (b^3) (c^3)-100 (a^6) (b^4) (c^3)-840 (a^5) (b^5) (c^3)+420 (a^4) (b^6) (c^3)+720 (a^3) (b^7) (c^3)-450 (a^2) (b^8) (c^3)-220 a (b^9) (c^3)+154 (b^10) (c^3)+15 (a^9) (c^4)+45 (a^8) b (c^4)-300 (a^7) (b^2) (c^4)-100 (a^6) (b^3) (c^4)+1050 (a^5) (b^4) (c^4)-210 (a^4) (b^5) (c^4)-1260 (a^3) (b^6) (c^4)+540 (a^2) (b^7) (c^4)+495 a (b^8) (c^4)-275 (b^9) (c^4)-15 (a^8) (c^5)+120 (a^7) b (c^5)+180 (a^6) (b^2) (c^5)-840 (a^5) (b^3) (c^5)-210 (a^4) (b^4) (c^5)+1512 (a^3) (b^5) (c^5)-252 (a^2) (b^6) (c^5)-792 a (b^7) (c^5)+297 (b^8) (c^5)-20 (a^7) (c^6)-100 (a^6) b (c^6)+420 (a^5) (b^2) (c^6)+420 (a^4) (b^3) (c^6)-1260 (a^3) (b^4) (c^6)-252 (a^2) (b^5) (c^6)+924 a (b^6) (c^6)-132 (b^7) (c^6)+20 (a^6) (c^7)-120 (a^5) b (c^7)-300 (a^4) (b^2) (c^7)+720 (a^3) (b^3) (c^7)+540 (a^2) (b^4) (c^7)-792 a (b^5) (c^7)-132 (b^6) (c^7)+15 (a^5) (c^8)+105 (a^4) b (c^8)-270 (a^3) (b^2) (c^8)-450 (a^2) (b^3) (c^8)+495 a (b^4) (c^8)+297 (b^5) (c^8)-15 (a^4) (c^9)+60 (a^3) b (c^9)+210 (a^2) (b^2) (c^9)-220 a (b^3) (c^9)-275 (b^4) (c^9)-6 (a^3) (c^10)-54 (a^2) b (c^10)+66 a (b^2) (c^10)+154 (b^3) (c^10)+6 (a^2) (c^11)-12 a b (c^11)-54 (b^2) (c^11)+a (c^12)+11 b (c^12)-(c^13)+16 (a^12) #1-96 (a^10) (b^2) #1+240 (a^8) (b^4) #1-320 (a^6) (b^6) #1+240 (a^4) (b^8) #1-96 (a^2) (b^10) #1+16 (b^12) #1+128 (a^10) b c #1-640 (a^8) (b^3) c #1+1280 (a^6) (b^5) c #1-1280 (a^4) (b^7) c #1+640 (a^2) (b^9) c #1-128 (b^11) c #1-96 (a^10) (c^2) #1+800 (a^8) (b^2) (c^2) #1-2240 (a^6) (b^4) (c^2) #1+2880 (a^4) (b^6) (c^2) #1-1760 (a^2) (b^8) (c^2) #1+416 (b^10) (c^2) #1-640 (a^8) b (c^3) #1+2560 (a^6) (b^3) (c^3) #1-3840 (a^4) (b^5) (c^3) #1+2560 (a^2) (b^7) (c^3) #1-640 (b^9) (c^3) #1+240 (a^8) (c^4) #1-2240 (a^6) (b^2) (c^4) #1+4000 (a^4) (b^4) (c^4) #1-2240 (a^2) (b^6) (c^4) #1+240 (b^8) (c^4) #1+1280 (a^6) b (c^5) #1-3840 (a^4) (b^3) (c^5) #1+1792 (a^2) (b^5) (c^5) #1+768 (b^7) (c^5) #1-320 (a^6) (c^6) #1+2880 (a^4) (b^2) (c^6) #1-2240 (a^2) (b^4) (c^6) #1-1344 (b^6) (c^6) #1-1280 (a^4) b (c^7) #1+2560 (a^2) (b^3) (c^7) #1+768 (b^5) (c^7) #1+240 (a^4) (c^8) #1-1760 (a^2) (b^2) (c^8) #1+240 (b^4) (c^8) #1+640 (a^2) b (c^9) #1-640 (b^3) (c^9) #1-96 (a^2) (c^10) #1+416 (b^2) (c^10) #1-128 b (c^11) #1+16 (c^12) #1+128 (a^11) ((#1)^2)-512 (a^9) (b^2) ((#1)^2)-128 (a^8) (b^3) ((#1)^2)+768 (a^7) (b^4) ((#1)^2)+512 (a^6) (b^5) ((#1)^2)-512 (a^5) (b^6) ((#1)^2)-768 (a^4) (b^7) ((#1)^2)+128 (a^3) (b^8) ((#1)^2)+512 (a^2) (b^9) ((#1)^2)-128 (b^11) ((#1)^2)+384 (a^9) b c ((#1)^2)+768 (a^8) (b^2) c ((#1)^2)-1536 (a^7) (b^3) c ((#1)^2)-3072 (a^6) (b^4) c ((#1)^2)+2304 (a^5) (b^5) c ((#1)^2)+4608 (a^4) (b^6) c ((#1)^2)-1536 (a^3) (b^7) c ((#1)^2)-3072 (a^2) (b^8) c ((#1)^2)+384 a (b^9) c ((#1)^2)+768 (b^10) c ((#1)^2)-512 (a^9) (c^2) ((#1)^2)+768 (a^8) b (c^2) ((#1)^2)+1536 (a^7) (b^2) (c^2) ((#1)^2)+2560 (a^6) (b^3) (c^2) ((#1)^2)-4608 (a^5) (b^4) (c^2) ((#1)^2)-9216 (a^4) (b^5) (c^2) ((#1)^2)+6656 (a^3) (b^6) (c^2) ((#1)^2)+7680 (a^2) (b^7) (c^2) ((#1)^2)-3072 a (b^8) (c^2) ((#1)^2)-1792 (b^9) (c^2) ((#1)^2)-128 (a^8) (c^3) ((#1)^2)-1536 (a^7) b (c^3) ((#1)^2)+2560 (a^6) (b^2) (c^3) ((#1)^2)+5632 (a^5) (b^3) (c^3) ((#1)^2)+5376 (a^4) (b^4) (c^3) ((#1)^2)-14848 (a^3) (b^5) (c^3) ((#1)^2)-9728 (a^2) (b^6) (c^3) ((#1)^2)+10752 a (b^7) (c^3) ((#1)^2)+1920 (b^8) (c^3) ((#1)^2)+768 (a^7) (c^4) ((#1)^2)-3072 (a^6) b (c^4) ((#1)^2)-4608 (a^5) (b^2) (c^4) ((#1)^2)+5376 (a^4) (b^3) (c^4) ((#1)^2)+19200 (a^3) (b^4) (c^4) ((#1)^2)+4608 (a^2) (b^5) (c^4) ((#1)^2)-21504 a (b^6) (c^4) ((#1)^2)-768 (b^7) (c^4) ((#1)^2)+512 (a^6) (c^5) ((#1)^2)+2304 (a^5) b (c^5) ((#1)^2)-9216 (a^4) (b^2) (c^5) ((#1)^2)-14848 (a^3) (b^3) (c^5) ((#1)^2)+4608 (a^2) (b^4) (c^5) ((#1)^2)+26880 a (b^5) (c^5) ((#1)^2)-512 (a^5) (c^6) ((#1)^2)+4608 (a^4) b (c^6) ((#1)^2)+6656 (a^3) (b^2) (c^6) ((#1)^2)-9728 (a^2) (b^3) (c^6) ((#1)^2)-21504 a (b^4) (c^6) ((#1)^2)-768 (a^4) (c^7) ((#1)^2)-1536 (a^3) b (c^7) ((#1)^2)+7680 (a^2) (b^2) (c^7) ((#1)^2)+10752 a (b^3) (c^7) ((#1)^2)-768 (b^4) (c^7) ((#1)^2)+128 (a^3) (c^8) ((#1)^2)-3072 (a^2) b (c^8) ((#1)^2)-3072 a (b^2) (c^8) ((#1)^2)+1920 (b^3) (c^8) ((#1)^2)+512 (a^2) (c^9) ((#1)^2)+384 a b (c^9) ((#1)^2)-1792 (b^2) (c^9) ((#1)^2)+768 b (c^10) ((#1)^2)-128 (c^11) ((#1)^2)+640 (a^10) ((#1)^3)-256 (a^9) b ((#1)^3)-1920 (a^8) (b^2) ((#1)^3)+1024 (a^7) (b^3) ((#1)^3)+1280 (a^6) (b^4) ((#1)^3)-1536 (a^5) (b^5) ((#1)^3)+1280 (a^4) (b^6) ((#1)^3)+1024 (a^3) (b^7) ((#1)^3)-1920 (a^2) (b^8) ((#1)^3)-256 a (b^9) ((#1)^3)+640 (b^10) ((#1)^3)-256 (a^9) c ((#1)^3)+1280 (a^8) b c ((#1)^3)+1024 (a^7) (b^2) c ((#1)^3)-1024 (a^6) (b^3) c ((#1)^3)-1536 (a^5) (b^4) c ((#1)^3)-4608 (a^4) (b^5) c ((#1)^3)+1024 (a^3) (b^6) c ((#1)^3)+7168 (a^2) (b^7) c ((#1)^3)-256 a (b^8) c ((#1)^3)-2816 (b^9) c ((#1)^3)-1920 (a^8) (c^2) ((#1)^3)+1024 (a^7) b (c^2) ((#1)^3)-4608 (a^6) (b^2) (c^2) ((#1)^3)+3072 (a^5) (b^3) (c^2) ((#1)^3)+19200 (a^4) (b^4) (c^2) ((#1)^3)-9216 (a^3) (b^5) (c^2) ((#1)^3)-16896 (a^2) (b^6) (c^2) ((#1)^3)+5120 a (b^7) (c^2) ((#1)^3)+4224 (b^8) (c^2) ((#1)^3)+1024 (a^7) (c^3) ((#1)^3)-1024 (a^6) b (c^3) ((#1)^3)+3072 (a^5) (b^2) (c^3) ((#1)^3)-31744 (a^4) (b^3) (c^3) ((#1)^3)+7168 (a^3) (b^4) (c^3) ((#1)^3)+33792 (a^2) (b^5) (c^3) ((#1)^3)-11264 a (b^6) (c^3) ((#1)^3)-1024 (b^7) (c^3) ((#1)^3)+1280 (a^6) (c^4) ((#1)^3)-1536 (a^5) b (c^4) ((#1)^3)+19200 (a^4) (b^2) (c^4) ((#1)^3)+7168 (a^3) (b^3) (c^4) ((#1)^3)-44288 (a^2) (b^4) (c^4) ((#1)^3)+6656 a (b^5) (c^4) ((#1)^3)-4864 (b^6) (c^4) ((#1)^3)-1536 (a^5) (c^5) ((#1)^3)-4608 (a^4) b (c^5) ((#1)^3)-9216 (a^3) (b^2) (c^5) ((#1)^3)+33792 (a^2) (b^3) (c^5) ((#1)^3)+6656 a (b^4) (c^5) ((#1)^3)+7680 (b^5) (c^5) ((#1)^3)+1280 (a^4) (c^6) ((#1)^3)+1024 (a^3) b (c^6) ((#1)^3)-16896 (a^2) (b^2) (c^6) ((#1)^3)-11264 a (b^3) (c^6) ((#1)^3)-4864 (b^4) (c^6) ((#1)^3)+1024 (a^3) (c^7) ((#1)^3)+7168 (a^2) b (c^7) ((#1)^3)+5120 a (b^2) (c^7) ((#1)^3)-1024 (b^3) (c^7) ((#1)^3)-1920 (a^2) (c^8) ((#1)^3)-256 a b (c^8) ((#1)^3)+4224 (b^2) (c^8) ((#1)^3)-256 a (c^9) ((#1)^3)-2816 b (c^9) ((#1)^3)+640 (c^10) ((#1)^3)+2176 (a^9) ((#1)^4)-2176 (a^8) b ((#1)^4)-4608 (a^7) (b^2) ((#1)^4)+4608 (a^6) (b^3) ((#1)^4)+4864 (a^5) (b^4) ((#1)^4)-4864 (a^4) (b^5) ((#1)^4)-4608 (a^3) (b^6) ((#1)^4)+4608 (a^2) (b^7) ((#1)^4)+2176 a (b^8) ((#1)^4)-2176 (b^9) ((#1)^4)-2176 (a^8) c ((#1)^4)+8704 (a^7) b c ((#1)^4)-4096 (a^6) (b^2) c ((#1)^4)-9728 (a^5) (b^3) c ((#1)^4)+4864 (a^4) (b^4) c ((#1)^4)+9728 (a^3) (b^5) c ((#1)^4)-5120 (a^2) (b^6) c ((#1)^4)-8704 a (b^7) c ((#1)^4)+6528 (b^8) c ((#1)^4)-4608 (a^7) (c^2) ((#1)^4)-4096 (a^6) b (c^2) ((#1)^4)+13824 (a^5) (b^2) (c^2) ((#1)^4)-4096 (a^4) (b^3) (c^2) ((#1)^4)-5632 (a^3) (b^4) (c^2) ((#1)^4)-4096 (a^2) (b^5) (c^2) ((#1)^4)+12800 a (b^6) (c^2) ((#1)^4)-4096 (b^7) (c^2) ((#1)^4)+4608 (a^6) (c^3) ((#1)^4)-9728 (a^5) b (c^3) ((#1)^4)-4096 (a^4) (b^2) (c^3) ((#1)^4)+1024 (a^3) (b^3) (c^3) ((#1)^4)+4608 (a^2) (b^4) (c^3) ((#1)^4)-7680 a (b^5) (c^3) ((#1)^4)-5120 (b^6) (c^3) ((#1)^4)+4864 (a^5) (c^4) ((#1)^4)+4864 (a^4) b (c^4) ((#1)^4)-5632 (a^3) (b^2) (c^4) ((#1)^4)+4608 (a^2) (b^3) (c^4) ((#1)^4)+2816 a (b^4) (c^4) ((#1)^4)+4864 (b^5) (c^4) ((#1)^4)-4864 (a^4) (c^5) ((#1)^4)+9728 (a^3) b (c^5) ((#1)^4)-4096 (a^2) (b^2) (c^5) ((#1)^4)-7680 a (b^3) (c^5) ((#1)^4)+4864 (b^4) (c^5) ((#1)^4)-4608 (a^3) (c^6) ((#1)^4)-5120 (a^2) b (c^6) ((#1)^4)+12800 a (b^2) (c^6) ((#1)^4)-5120 (b^3) (c^6) ((#1)^4)+4608 (a^2) (c^7) ((#1)^4)-8704 a b (c^7) ((#1)^4)-4096 (b^2) (c^7) ((#1)^4)+2176 a (c^8) ((#1)^4)+6528 b (c^8) ((#1)^4)-2176 (c^9) ((#1)^4)+5120 (a^8) ((#1)^5)-8192 (a^7) b ((#1)^5)-4096 (a^6) (b^2) ((#1)^5)+8192 (a^5) (b^3) ((#1)^5)-2048 (a^4) (b^4) ((#1)^5)+8192 (a^3) (b^5) ((#1)^5)-4096 (a^2) (b^6) ((#1)^5)-8192 a (b^7) ((#1)^5)+5120 (b^8) ((#1)^5)-8192 (a^7) c ((#1)^5)+24576 (a^6) b c ((#1)^5)-24576 (a^5) (b^2) c ((#1)^5)+8192 (a^4) (b^3) c ((#1)^5)+8192 (a^3) (b^4) c ((#1)^5)-24576 (a^2) (b^5) c ((#1)^5)+24576 a (b^6) c ((#1)^5)-8192 (b^7) c ((#1)^5)-4096 (a^6) (c^2) ((#1)^5)-24576 (a^5) b (c^2) ((#1)^5)+36864 (a^4) (b^2) (c^2) ((#1)^5)-16384 (a^3) (b^3) (c^2) ((#1)^5)+36864 (a^2) (b^4) (c^2) ((#1)^5)-24576 a (b^5) (c^2) ((#1)^5)-4096 (b^6) (c^2) ((#1)^5)+8192 (a^5) (c^3) ((#1)^5)+8192 (a^4) b (c^3) ((#1)^5)-16384 (a^3) (b^2) (c^3) ((#1)^5)-16384 (a^2) (b^3) (c^3) ((#1)^5)+8192 a (b^4) (c^3) ((#1)^5)+8192 (b^5) (c^3) ((#1)^5)-2048 (a^4) (c^4) ((#1)^5)+8192 (a^3) b (c^4) ((#1)^5)+36864 (a^2) (b^2) (c^4) ((#1)^5)+8192 a (b^3) (c^4) ((#1)^5)-2048 (b^4) (c^4) ((#1)^5)+8192 (a^3) (c^5) ((#1)^5)-24576 (a^2) b (c^5) ((#1)^5)-24576 a (b^2) (c^5) ((#1)^5)+8192 (b^3) (c^5) ((#1)^5)-4096 (a^2) (c^6) ((#1)^5)+24576 a b (c^6) ((#1)^5)-4096 (b^2) (c^6) ((#1)^5)-8192 a (c^7) ((#1)^5)-8192 b (c^7) ((#1)^5)+5120 (c^8) ((#1)^5)+8192 (a^7) ((#1)^6)-16384 (a^6) b ((#1)^6)+24576 (a^4) (b^3) ((#1)^6)-24576 (a^3) (b^4) ((#1)^6)+16384 a (b^6) ((#1)^6)-8192 (b^7) ((#1)^6)-16384 (a^6) c ((#1)^6)+40960 (a^5) b c ((#1)^6)-32768 (a^4) (b^2) c ((#1)^6)-16384 (a^3) (b^3) c ((#1)^6)+49152 (a^2) (b^4) c ((#1)^6)-24576 a (b^5) c ((#1)^6)-32768 (a^4) b (c^2) ((#1)^6)+49152 (a^3) (b^2) (c^2) ((#1)^6)-16384 (a^2) (b^3) (c^2) ((#1)^6)-16384 a (b^4) (c^2) ((#1)^6)+16384 (b^5) (c^2) ((#1)^6)+24576 (a^4) (c^3) ((#1)^6)-16384 (a^3) b (c^3) ((#1)^6)-16384 (a^2) (b^2) (c^3) ((#1)^6)+49152 a (b^3) (c^3) ((#1)^6)-8192 (b^4) (c^3) ((#1)^6)-24576 (a^3) (c^4) ((#1)^6)+49152 (a^2) b (c^4) ((#1)^6)-16384 a (b^2) (c^4) ((#1)^6)-8192 (b^3) (c^4) ((#1)^6)-24576 a b (c^5) ((#1)^6)+16384 (b^2) (c^5) ((#1)^6)+16384 a (c^6) ((#1)^6)-8192 (c^7) ((#1)^6)+8192 (a^6) ((#1)^7)-16384 (a^5) b ((#1)^7)-8192 (a^4) (b^2) ((#1)^7)+32768 (a^3) (b^3) ((#1)^7)-8192 (a^2) (b^4) ((#1)^7)-16384 a (b^5) ((#1)^7)+8192 (b^6) ((#1)^7)-16384 (a^5) c ((#1)^7)+16384 (a^4) b c ((#1)^7)+32768 (a^3) (b^2) c ((#1)^7)-32768 (a^2) (b^3) c ((#1)^7)-16384 a (b^4) c ((#1)^7)+16384 (b^5) c ((#1)^7)-8192 (a^4) (c^2) ((#1)^7)+32768 (a^3) b (c^2) ((#1)^7)-49152 (a^2) (b^2) (c^2) ((#1)^7)+32768 a (b^3) (c^2) ((#1)^7)-8192 (b^4) (c^2) ((#1)^7)+32768 (a^3) (c^3) ((#1)^7)-32768 (a^2) b (c^3) ((#1)^7)+32768 a (b^2) (c^3) ((#1)^7)-32768 (b^3) (c^3) ((#1)^7)-8192 (a^2) (c^4) ((#1)^7)-16384 a b (c^4) ((#1)^7)-8192 (b^2) (c^4) ((#1)^7)-16384 a (c^5) ((#1)^7)+16384 b (c^5) ((#1)^7)+8192 (c^6) ((#1)^7)+4096 (a^5) ((#1)^8)-4096 (a^4) b ((#1)^8)-8192 (a^3) (b^2) ((#1)^8)+8192 (a^2) (b^3) ((#1)^8)+4096 a (b^4) ((#1)^8)-4096 (b^5) ((#1)^8)-4096 (a^4) c ((#1)^8)-16384 (a^3) b c ((#1)^8)+24576 (a^2) (b^2) c ((#1)^8)+16384 a (b^3) c ((#1)^8)-20480 (b^4) c ((#1)^8)-8192 (a^3) (c^2) ((#1)^8)+24576 (a^2) b (c^2) ((#1)^8)+24576 a (b^2) (c^2) ((#1)^8)-40960 (b^3) (c^2) ((#1)^8)+8192 (a^2) (c^3) ((#1)^8)+16384 a b (c^3) ((#1)^8)-40960 (b^2) (c^3) ((#1)^8)+4096 a (c^4) ((#1)^8)-20480 b (c^4) ((#1)^8)-4096 (c^5) ((#1)^8)&,6];

α0/.soln[[1]]/.alphapoly->r

alpha=Factor/@CoefficientList[First[alphapoly][x],x]

%==beta

alpha.Table[#1^n,{n,0,8}]

root=Root[(a-b-c) (((a+b-c))^6) (((a-b+c))^6)+16 (a-b-c) (((a+b-c))^5) (((a-b+c))^5) (a+b+c) #1+128 (((a+b-c))^3) (((a-b+c))^3) ((a^5)-(a^3) (b^2)-(a^2) (b^3)+(b^5)-3 (a^3) b c+6 (a^2) (b^2) c-3 a (b^3) c-(a^3) (c^2)+6 (a^2) b (c^2)+6 a (b^2) (c^2)-(b^3) (c^2)-(a^2) (c^3)-3 a b (c^3)-(b^2) (c^3)+(c^5)) ((#1)^2)+128 (a-b-c) (((a+b-c))^3) (((a-b+c))^3) (5 (a^3)+3 (a^2) b+3 a (b^2)+5 (b^3)+3 (a^2) c-14 a b c+3 (b^2) c+3 a (c^2)+3 b (c^2)+5 (c^3)) ((#1)^3)+128 (a-b-c) (((a+b-c))^2) (((a-b+c))^2) (17 (a^4)-2 (a^2) (b^2)+17 (b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+17 (c^4)) ((#1)^4)+1024 (((a-b-c))^2) (((a+b-c))^2) (((a-b+c))^2) (5 (a^2)+2 a b+5 (b^2)+2 a c+2 b c+5 (c^2)) ((#1)^5)+8192 (((a-b-c))^2) (a+b-c) (a-b+c) ((a^3)+(b^3)+a b c+(c^3)) ((#1)^6)+8192 (((a-b-c))^3) (a+b-c) (a-b+c) (a+b+c) ((#1)^7)+4096 (((a-b-c))^3) (((a+b+c))^2) ((#1)^8)&,6];

MalfattiCircles[t]

TrilinearToCartesian[t,{((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2 root))-(b+c),a,a}/.rules]/.rules

Table[CyclicTrilinears[RadiusR1[{a,b,c},n]]/.rules,{n,7}]//ColumnForm

RadiusR2[{a_,b_,c_}]:=RadiusR1[{b,c,a},7]
RadiusR3[{a_,b_,c_}]:=RadiusR1[{c,a,b},5]

{RadiusR1[{a,b,c}]/.rules,RadiusR2[{a,b,c}],RadiusR3[{a,b,c}]}/.rules

TrilinearToCartesian[t,{((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2 root))-(b+c),a,a}/.rules]/.rules

TrilinearToCartesian[t,{b,((Sqrt[(-a+b+c) (a+b-c) (a-b+c) (a+b+c)])/(2 root/.Root[x_,n_]:>Root[CyclicTrilinears[x][[2]],7]))-(a+c),b}/.rules]/.rules

TrilinearToCartesian[t,{c,c,((Sqrt[(-a+b+c) (a+b-c) (a-b+c) (a+b+c)])/(2 root/.Root[x_,n_]:>Root[CyclicTrilinears[x][[3]],5]))-(a+b)}/.rules]/.rules

poly[a_,b_,c_]:=(a-b-c) (((a+b-c))^6) (((a-b+c))^6)+
16 (a-b-c) (((a+b-c))^5) (((a-b+c))^5) (a+b+c) #1+128 (((a+b-c))^3) (((a-b+c))^3) ((a^5)-(a^3) (b^2)-(a^2) (b^3)+(b^5)-3 (a^3) b c+6 (a^2) (b^2) c-3 a (b^3) c-(a^3) (c^2)+6 (a^2) b (c^2)+6 a (b^2) (c^2)-(b^3) (c^2)-(a^2) (c^3)-3 a b (c^3)-(b^2) (c^3)+(c^5)) ((#1)^2)+128 (a-b-c) (((a+b-c))^3) (((a-b+c))^3) (5 (a^3)+3 (a^2) b+3 a (b^2)+5 (b^3)+3 (a^2) c-14 a b c+3 (b^2) c+3 a (c^2)+3 b (c^2)+5 (c^3)) ((#1)^3)+128 (a-b-c) (((a+b-c))^2) (((a-b+c))^2) (17 (a^4)-2 (a^2) (b^2)+17 (b^4)-2 (a^2) (c^2)-2 (b^2) (c^2)+17 (c^4)) ((#1)^4)+1024 (((a-b-c))^2) (((a+b-c))^2) (((a-b+c))^2) (5 (a^2)+2 a b+5 (b^2)+2 a c+2 b c+5 (c^2)) ((#1)^5)+
8192 (((a-b-c))^2) (a+b-c) (a-b+c) ((a^3)+(b^3)+a b c+(c^3)) ((#1)^6)+
8192 (((a-b-c))^3) (a+b-c) (a-b+c) (a+b+c) ((#1)^7)+
4096 (((a-b-c))^3) (((a+b+c))^2) ((#1)^8)&;

Positive orientation

MyMalfattiCirclesP:={
Circle[{((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[a,b,c],6]))-(b+c),a,a},Root[poly[a,b,c],6]],
Circle[{b,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[b,c,a],7]))-(a+c),b},Root[poly[b,c,a],7]],
Circle[{c,c,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[c,a,b],5]))-(a+b)},Root[poly[c,a,b],5]]}

t=Triangle[{{0,0},{1,0},{.3,.7}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
{Through[MyMalfattiCirclesP[t]],
Through[MyMalfattiCirclesN[t]],MalfattiCircles[t]//N}/.rules

Negative orientation

MyMalfattiCirclesN:={
Circle[{((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[a,b,c],6]))-(b+c),a,a},Root[poly[a,b,c],6]],
Circle[{b,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[b,c,a],5]))-(a+c),b},Root[poly[b,c,a],5]],
Circle[{c,c,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2Root[poly[c,a,b],7]))-(a+b)},Root[poly[c,a,b],7]]}

t=Triangle[{{0,0},{.3,.7},{1,0}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
{Through[MyMalfattiCirclesP[t]],
Through[MyMalfattiCirclesN[t]],MalfattiCircles[t]//N}/.rules

Show[Graphics[{
t,
{Red,MalfattiCircles[t]/.rules},
{Blue,Through[MyMalfattiCirclesP[t]]/.rules}
}],AspectRatio->Automatic]

t=N[Triangle[{{3/10,7/10},{0,0},{1,0}}],20];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
{Through[MyMalfattiCirclesP[t]],
Through[MyMalfattiCirclesN[t]],MalfattiCircles[t]//N}/.rules

Show[Graphics[{
t,
{Blue,Thickness[.01],Through[MyMalfattiCirclesN[t]]/.rules},
{Red,MalfattiCircles[t]/.rules}
}],AspectRatio->Automatic]

t=Triangle[{{.3,.7},{1,0},{0,0}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
{Through[MyMalfattiCirclesP[t]],
Through[MyMalfattiCirclesN[t]],
MalfattiCircles[t]//N}/.rules

Show[Graphics[{
t,
{Blue,Thickness[.01],Through[MyMalfattiCirclesN[t]]/.rules},
{Red,MalfattiCircles[t]/.rules}
}],AspectRatio->Automatic]

t=Triangle[{{0,0},{1,0},{.3,.7}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
Show[Graphics[{
t,
{Blue,Through[MyMalfattiCirclesP[t]]/.rules}
}],AspectRatio->Automatic]

MyMalfattiCircles:={
Circle[{((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2#))-(b+c),a,a},#]&/@List@@(Last/@Roots[poly[a,b,c][x]==0,x]),
Circle[{b,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2#))-(a+c),b},#]&/@List@@(Last/@Roots[poly[b,c,a][x]==0,x]),
Circle[{c,c,((Sqrt[-(a-b-c) (a+b-c) (a-b+c) (a+b+c)])/(2#))-(a+b)},#]&/@List@@(Last/@Roots[poly[c,a,b][x]==0,x])
}

t=Triangle[{{0,0},{1,0},{.3,.7}}];
rules=Thread[{a,b,c}->SideLengths[Evaluate[t]]];
Show[Graphics[{
t,
{Blue,MyMalfattiCircles/.Circle[x__]:>Circle[x][t]/.rules}
}],AspectRatio->Automatic]