(* given 3 line-lengths, construct a triangle *) (* Calculate triangle apex with intersecting circles *) (* Use Polygon() instead of Triangle() *) hyps = 5; longs = 4; shorts = 3; (* Discover one angle of triangle by Newton's method. Assume acute angle *) Clear(t); answ = Replace(t, FindRoot(Cos(t)*longs+Sin(t)*shorts == hyps, {t, 1/Sqrt(2)})); k = {{0, 0}, {hyps, 0}, {Cos(answ) * longs, Sin(answ) * longs}}; k = Append(k, Part(k, 1)); Graphics({ Blue, Circle({0, 0}, longs), Red, Circle({hyps, 0}, shorts), Green, Line(k) }, PlotRange -> {-1 - longs, 1 + longs} ) (* given 3 line-lengths, construct a triangle *) (* Calculate triangle apex with intersecting circles *) (* Use Polygon() instead of Triangle() *) hyps = 5; longs = 4; shorts = 3; (* Discover angle by dividing into 2 right triangles, then trigonometry *) Clear(x); answ = Replace({x, height}, Flatten(Solve( longs / hyps == x / longs && (* cosine x, unknown 'long' *) shorts / hyps == height / longs && (* sine height, unknown 'short' *) shorts / longs == height / x, (* tangent longs, known hypotenuse *) {x, height})), 1); k = {{0, 0}, {hyps, 0}, {Part(answ, 1), Part(answ, 2)}}; k = Append(k, Part(k, 1)); Graphics({ Blue, Circle({0, 0}, longs), Red, Circle({hyps, 0}, shorts), Green, Line(k) }, PlotRange -> {-1 - longs, 1 + longs} )