k = 0.52 (slider from 0 to 1, step 0.01)
A = (-3, 0)
B = (-2, 0)
n = 6 (slider from 1 to 8, step 1)
l1 = IterationList(Join[Zip[{Polygon[Vertex[p, 4], Point[Semicircle[Vertex[p, 4], Vertex[p, 3]], k], 4], Polygon[Point[Semicircle[Vertex[p, 4], Vertex[p, 3]], k], Vertex[p, 3], 4]}, p, p1]], p1, {{Polygon[A, B, 4]}}, n)
l2 = 涂色(l1)
l1长 = 9
l1元素1 = Element(l1, 1)
l1元素2 = Element(l1, 2)
l1元素3 = Element(l1, 3)
l1元素4 = Element(l1, 4)
l1元素5 = Element(l1, 5)
l1元素6 = Element(l1, 6)
l1元素7 = Element(l1, 7)
l1元素8 = Element(l1, 8)
l1元素9 = Element(l1, 9)
C = (1.3523209334712165, 0.46703337640530185)
D = (2.8507702041589513, 0.46703337640530185)

Tool: 涂色
请点击列表，会生成一个新列表；再在指令栏输入：执行()【括号里面写新列表的名称】
Input: l1
Output: l5

l1长 = Length(l1)
l2 = Sequence(Name[l1] + "元素" + (k) + "=Element(" + (Name[l1]) + "," + (k) + ")", k, 1, l1长)
l4: {Name[l1] + "长=CopyFreeObject(Length(" + (Name[l1]) + "))"}
l3 = Sequence("SetDynamicColor(" + (Name[l1]) + "元素" + (k) + ",x(Point(Polyline({(1, 0, 0), (1, 0, 1), (0, 0, 1), (0, 1, 1), (0, 1, 0), (1, 1, 0), (1, 0, 0)}), " + (k) + "/ " + (Name[l1]) + "长)),y(Point(Polyline({(1, 0, 0), (1, 0, 1), (0, 0, 1), (0, 1, 1), (0, 1, 0), (1, 1, 0), (1, 0, 0)}), " + (k) + "/" + (Name[l1]) + "长)),z(Point(Polyline({(1, 0, 0), (1, 0, 1), (0, 0, 1), (0, 1, 1), (0, 1, 0), (1, 1, 0), (1, 0, 0)}), " + (k) + "/ " + (Name[l1]) + "长)))", k, 1, l1长)
l5 = Join({l4, l2, l3})