Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Intersection and Circle from sympy solution in Uncategorized category for Count Chains by rodka81
from sympy.geometry import Circle, intersection
from itertools import combinations
def intersect(c1, c2):
x1, y1, r1 = c1
x2, y2, r2 = c2
return len(intersection(Circle((x1, y1), r1), Circle((x2, y2), r2))) > 1
def count_chains(circles):
links = list(range(len(circles)))
for i, j in combinations(range(len(circles)), 2):
if intersect(circles[i], circles[j]):
grp1, grp2 = links[i], links[j]
for k in range(len(links)):
if links[k] in (grp1, grp2):
links[k] = grp1
return len(set(links))
March 6, 2020