Code
# inner part
ic1= circle(r= 40 , x=13, y= 0,fill="green", stroke="green")|repeat(5,rotate(72))
ic2= circle(r= 35 , x=13, y= 0,fill="purple", stroke="purple")|repeat(5,rotate(72))
ic23=circle(r= 30 , x=13, y= 0,fill='c2', stroke='c2')|repeat(5,rotate(72))
ir1 = rectangle (w=30,h=30,x=20,y=0,fill="green", stroke="green")|rotate(20) | repeat (20,rotate(50))
s1 = ellipse(h= 70, w=35,fill="white", stroke="yellow")
s2 = s1 | rotate(45)
s3 = s1 | rotate(90)
s4 = s1 | rotate(135)
s5 = ellipse(x=20, y=0, w=20 ,h=12, fill= "#d95471", stroke = '#d95471', stroke_width = 3) | repeat(9, rotate(45))
s6 = ellipse(x=12, y=0, w=20 ,h=15, fill= "#ff92ce", stroke = "#fff315") | repeat(9, rotate(45))
outer_circle1 = circle(r=150, fill="black")
#outer layer
outer_sublayer_01 = rectangle (w=209,h=209,fill="green", stroke="green") | repeat (15,rotate(50))
outer_sublayer_02 = rectangle (w=193,h=193,fill="white", stroke="white")|rotate(15) | repeat (15,rotate(50))
outer_sublayer_03 = rectangle (w=178,h=178,fill="orange", stroke="orange")|rotate(0) | repeat (15,rotate(50))
outer_sublayer_04 = rectangle (w=165,h=165,fill="yellow", stroke="yellow")|rotate(15) | repeat (15,rotate(50))
outer_sublayer_05 = rectangle (w=153,h=153,fill="white", stroke="white")|rotate(0) | repeat (15,rotate(50))
def triangle(px,py,pz,color) :
return polygon([px,py,pz],fill=color,stroke='none')
# middle layer
outer_circle = circle(r=100,fill='#004600',stroke='none')
t1 = rectangle(h=100,w=100,fill='white',stroke='none') | repeat(3,rotate(30))
t2 = rectangle(h=120,w=120,fill='green',stroke='none') | repeat(3,rotate(30))
t3 = rectangle(h=140,w=140,fill='white',stroke='none') | repeat(3,rotate(30))
tp1 = point(x=0,y=100)
tp2 = point(x=10,y=0)
tp3 = point(x=-10,y=0)
t4 = triangle(tp1,tp2,tp3,'#800000') | repeat(12,rotate(30))
show(outer_circle1,outer_sublayer_01,outer_sublayer_02,outer_sublayer_03,outer_sublayer_04,outer_sublayer_05,)
show(outer_circle,t3,t2,t1,t4)
show(ic1,ic2,ic23,ir1)
show(s1,s2,s3,s4,s5,s6)