Pookkalam by Abhiram S

Code

def elip(x,y):
    s2 = ellipse(fill="#af2a0f",stroke="#af2a0f") | rotate(30)
    s3 = ellipse(fill="#af2a0f",stroke="#af2a0f") | rotate(150)
    s1 = ellipse(fill="#af2a0f",stroke="#af2a0f") | rotate(90)
    z = combine([s1,s2,s3])
    return z

def elip2(x,y):
    s4 = ellipse(fill="yellow",stroke="#af2a0f") | rotate(30)
    s5 = ellipse(fill="yellow",stroke="#af2a0f") | rotate(150)
    s6 = ellipse(fill="yellow",stroke="#af2a0f") | rotate(90)
    m = circle(r=77,fill = "#af2a0f",stroke="green",stroke_width=5)
    shape1=combine([s4,s5,s6,m])
    return shape1


shape = circle(r=149,fill="green",stroke="green") + circle(r=143,fill="yellow",stroke="yellow") + circle(r=125,fill="#F96800",stroke="yellow")
a = elip(x=0,y=0) | scale(1.239)
b = elip2(x=0,y=0) | scale(1.2)


def inner(x,y):
    p1 = point(x=0,y=80)
    p2 = point(x=-35,y=20)
    p3 = point(x=0,y=0)
    p4 = point(x=35,y=20)
    sha1 = polygon([p1,p2,p3,p4],fill ="yellow",stroke='green',stroke_width=5)
    sha2 = polygon([p1,p2,p3,p4],fill ="#F96800",stroke='green',stroke_width=5) | rotate(60)
    sha3 = polygon([p1,p2,p3,p4],fill ="yellow",stroke='green',stroke_width=5) | rotate(120)
    sha4 = polygon([p1,p2,p3,p4],fill ="#F96800",stroke='green',stroke_width=5) | rotate(180)
    sha5 = polygon([p1,p2,p3,p4],fill ="yellow",stroke='green',stroke_width=5) | rotate(240)
    sha6 = polygon([p1,p2,p3,p4],fill ="#F96800",stroke='green',stroke_width=5) | rotate(300)
    sha7 = polygon([p1,p3,p4],fill ="yellow",stroke="yellow")
    sha8 = line(x1=0,y1=0,x2=35,y2=22,stroke="green",stroke_width=5)
    sha9 = line(x1=35,y1=20,x2=-0.9,y2=80.5,stroke="green",stroke_width=5)
    sha10 = line(x1=0,y1=0,x2=0,y2=42.5,stroke="green",stroke_width=3)
    c = circle(r=10,fill="red",stroke="green",stroke_width=(3))
    insshape = combine([sha1,sha2,sha3,sha4,sha5,sha6,sha7,sha8,sha9,sha10,c])
    return insshape



def pell(x1,y1,x2,y2):
    z=line(x1=x1,y1=y1,x2=x2,y2=y2,stroke="#dbdb0f") | repeat(91,rotate(-2))
    z1=line(x1=x1,y1=y1,x2=x2,y2=y2,stroke="#dbdb0f") | repeat(91,rotate(2))
    pel = combine([z,z1])
    return pel



f = pell(x1=-120,y1=50,x2=-125,y2=52)
g = pell(x1=-123,y1=53,x2=-128,y2=55)
h = pell(x1=-118,y1=51,x2=-122,y2=51)
j = combine([f,g,h])
l1 = combine([f,g,h]) | scale(1.03)
l2 = combine([f,g,h]) | scale(0.97)
e = inner(x=0,y=0) | scale(1.09)
show(shape,a,b,e,j,l1,l2)