-- search_circle.lua local r =... function newcircle (T,C) local NT,L,NC,c,t NT = T.incenter : homothety ((1+C.radius/T.inradius),T) L = line : new (NT.pb,NT.pa) _,NC = L : c_ll_p(NT.pc,C.center) return NC.center,T.bc:projection(NC.center) end z.A = point : new ( 0 , 0 ) z.B = point : new ( 8 , 0 ) z.C = point : new ( 2 , 6 ) T.ABC = triangle : new (z.A,z.B,z.C) L.bA = T.ABC : bisector () z.c1 = L.bA : report(r) z.t1 = T.ABC.ab : projection(z.c1) C.last = circle : new(z.c1,z.t1) local vertices = {"A", "B", "C"} for i = 2, 6 do T.used = triangle : new( z[vertices[math.fmod(i - 2, 3) + 1]], z[vertices[math.fmod(i - 1, 3) + 1]], z[vertices[math.fmod(i, 3) + 1]] ) z["c" .. i], z["t" .. i] = newcircle(T.used, C.last) C.last = circle : new(z["c" .. i], z["t" .. i]) end