def sphere_from_chaining(radius, segs):
deg_per_seg = 180.0 / segs
hs = (3.141592653589793 * radius) / segs
l = []
l.append((-radius, circle(0.3, segs)))
h_sum = -radius
for i in range(1, segs - 1):
factor = sin(i * deg_per_seg)
r = radius * factor
h = hs * factor
h_sum += h
l.append((h_sum, circle(r, segs)))
l.append((radius, circle(0.3, segs)))
s = extrude_chaining(l, is_convex=True)
return s
out = sphere_from_chaining(10, 60)
|