Pookkalam by Roshan T Joy

Code

import math
#left_flower

c2=circle(r=74,fill="#266C87")

l10=line(x1=-42,y1=-60,x2=-82,y2=-117)
l11=line(x1=0,y1=74,x2=-70,y2=95)
r1=l11|repeat(4,rotate(36.25))

r2=l10|repeat(5,rotate(-36.25))

d1=point(x=-70,y=95)
d2=point(x=-70,y=109)
d3=point(x=-61,y=106)
d4=point(x=-61,y=123)
d5=point(x=-46,y=118)
d6=point(x=-46,y=141)
d7=point(x=-23,y=130)
d8=point(x=-23,y=150)
d9=point(x=0,y=142)

d10=point(x=0,y=118)
d11=point(x=-23,y=108)
d12=point(x=-46,y=102)
d13=point(x=-61,y=92)
dd1=polygon([d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d7,d11,d5,d12,d3,d13],fill="#95C42D ")

d14=point(x=-46,y=88)
d15=point(x=-23,y=94)
d16=point(x=-12,y=103)
d17=point(x=0,y=98)
d18=point(x=-23,y=81)
d19=point(x=-12,y=91)
d20=point(x=0,y=74)
dd2=polygon([d13,d3,d12,d5,d11,d7,d10,d17,d11,d15,d12,d14],fill="#1A7C8B ")

dd3=polygon([d20,d18,d11,d17],fill="#7C1A8B")

dd4=polygon([d14,d12,d15,d11,d16,d19,d15,d18],fill="#1A538B ")

dd=dd1+dd2+dd3+dd4
dds=dd|repeat(4,rotate(36.25))


c1=circle(x=10,y=-53,r=30,fill="white")|rotate(-11)

e7=ellipse(x=47,y=1,w=140,h=88,stroke="white",stroke_width="3")|rotate(52)

l1=line(x1=0,y1=74,x2=-17,y2=24)
show(l1)
l2=line(x1=9,y1=-25,x2=70,y2=22)
show(l2)
l3=line(x1=50,y1=100,x2=82,y2=98)
show()
l4=line(x1=84,y1=71,x2=82,y2=98)
show()
e8=ellipse(x=56,y=-39,w=120,h=70,stroke="white",stroke_width="3")|rotate(23)

l5=line(x1=29,y1=-52,x2=95,y2=-39)
show(l5)
l6=line(x1=105,y1=24,x2=130,y2=15)
show(l6)
l7=line(x1=123,y1=-6,x2=130,y2=15)
show(l7)
e9=ellipse(x=75,y=-66,w=100,h=75,stroke="white",stroke_width="3")|rotate(-4)

l8=line(x1=113,y1=-53,x2=130,y2=-75)
show(l8)
l9=line(x1=108,y1=-97,x2=130,y2=-75)
show(l9)



a1=point(x=82,y=98)
a2=point(x=57,y=100)
a3=point(x=34,y=96)
a4=point(x=13,y=83)
a5=point(x=-4,y=61)
a6=point(x=-12,y=40)
a7=point(x=-18,y=24)
a8=point(x=1,y=28)
a9=point(x=4,y=4)
a10=point(x=24,y=11)
a11=point(x=41,y=14)
a12=point(x=28,y=-9)
a13=point(x=43,y=1)
a14=point(x=59,y=14)
a15=point(x=71,y=24)
a16=point(x=83,y=52)
a17=point(x=84,y=72)
a18=point(x=58,y=71)
a19=point(x=36,y=68)
a20=point(x=57,y=49)
a21=point(x=16,y=65)
a22=point(x=-1,y=42)
a23=point(x=19,y=45)
a24=point(x=38,y=47)
a25=point(x=40,y=30)
a26=point(x=21,y=30)
a27=point(x=58,y=28)

a28=point(x=10,y=-25)
a29=point(x=130,y=15)
a30=point(x=109,y=23)
a31=point(x=90,y=26)
a32=point(x=43,y=-29)

a33=point(x=27,y=-53)
a34=point(x=52,y=-48)
a35=point(x=70,y=-45)
a36=point(x=96,y=-40)
a37=point(x=107,y=-31)
a38=point(x=117,y=-23)
a39=point(x=125,y=-3)
a40=point(x=102,y=1)
a41=point(x=85,y=8)
a42=point(x=73,y=11)
a43=point(x=56,y=-2)
a44=point(x=50,y=-15)
a45=point(x=64,y=-19)
a46=point(x=59,y=-32)
a47=point(x=73,y=-35)
a48=point(x=77,y=-22)
a49=point(x=81,y=-9)
a50=point(x=69,y=-5)
a51=point(x=98,y=-15)
a52=point(x=96,y=-27)
a53=point(x=109,y=-49)
a54=point(x=119,y=-61)
a55=point(x=130,y=-75)
a56=point(x=116,y=-86)
a57=point(x=104,y=-100)
a58=point(x=84,y=-108)
a59=point(x=59,y=-108)
a60=point(x=36,y=-96)

a61=point(x=26,y=-74)
a62=point(x=103,y=-76)
a63=point(x=93,y=-66)
a64=point(x=80,y=-55)
a65=point(x=64,y=-66)
a66=point(x=47,y=-72)
a67=point(x=60,y=-85)
a68=point(x=77,y=-77)
a69=point(x=72,y=-99)
a70=point(x=90,y=-88)
a71=point(x=0,y=70)
a72=point(x=20,y=-82)
a73=point(x=-5,y=15)
a74=point(x=8,y=-9)
a75=point(x=8,y=-29)
a76=point(x=82,y=98)

#appendpetals
petal=[]
def mergep(pet):
    petal.append(pet)

pet1=polygon([a2,a18,a17,a16,a20,a18,a19,a3],fill="#0c5a65")
mergep(pet1)
pet2=polygon([a3,a19,a18,a20,a16,a15,a27,a20,a24,a19,a21,a4],fill="#456564")
mergep(pet2)
pet3=polygon([a4,a21,a19,a24,a20,a27,a15,a14,a27,a25,a24,a23,a21,a5,a71],fill="#096a4c")
mergep(pet3)
pet4=polygon([a5,a21,a23,a24,a25,a27,a14,a11,a25,a26,a23,a22],fill="#087f88")
mergep(pet4)
pet5=polygon([a6,a22,a8,a26,a10,a11,a13,a12,a10,a9,a8,a7],fill="#449842")
mergep(pet5)
pet6=polygon([a5,a22,a23,a26,a25,a11,a14,a13,a11,a10,a26,a8,a22,a6],fill="#0f7f35")
mergep(pet6)
pet7=polygon([a7,a8,a9,a10,a12,a28,a75,a74,a9,a73],fill="#8cbc23")
mergep(pet7)

pet8=polygon([a31,a30,a40,a39,a38,a51,a40,a41],fill="#450a14")
mergep(pet8)
pet9=polygon([a15,a31,a41,a40,a51,a38,a37,a52,a51,a49,a41,a42],fill="#9d181a")
mergep(pet9)
pet10=polygon([a15,a42,a41,a49,a51,a52,a37,a36,a52,a48,a49,a50,a42,a14],fill="#a31c5e")
mergep(pet10)
pet11=polygon([a14,a42,a50,a49,a48,a52,a36,a47,a48,a45,a50,a43],fill="red")
mergep(pet11)
pet12=polygon([a14,a43,a50,a45,a48,a47,a36,a35,a47,a46,a45,a44,a43,a13],fill="red")
mergep(pet12)
pet13=polygon([a13,a43,a44,a45,a46,a47,a35,a34,a46,a32,a44,a12],fill="#c64719")
mergep(pet13)
pet14=polygon([a12,a44,a32,a46,a34,a33,a32,a28],fill="#d9a50f")
mergep(pet14)
pet15=polygon([a28,a32,a33],fill="#c3c41c")
mergep(pet15)

pet16=polygon([a53,a54,a62,a62,a56,a57,a70,a62,a63],fill="#0d6650")
mergep(pet16)
pet17=polygon([a36,a53,a63,a62,a70,a57,a58,a69,a70,a68,a63,a64],fill="#057886")
mergep(pet17)
pet18=polygon([a36,a64,a63,a68,a70,a69,a58,a59,a69,a67,a68,a65,a64,a35],fill="#449842")
mergep(pet18)
pet19=polygon([a35,a64,a65,a68,a67,a69,a59,a60,a67,a66,a65,a34],fill="#449842")
mergep(pet19)
pet20=polygon([a34,a65,a66,a67,a60,a72,a61,a66,a33],fill="#8cbc23")
mergep(pet20)
pet21=polygon([a33,a66,a61],fill="#c3c41c")
mergep(pet21)
show(polygon([a2,a1,a17,a18],fill="#153d7d"))



petals=combine(petal)


#peacock


show(c2)
#filler
fil2=ellipse(x=30,y=-110,w=90,h=110,fill="#dadbda")|rotate(-50)
show()
fil3=circle(r=27,x=-50,y=25,fill="#0A4070 ",stroke="none")
show()
ex=ellipse(x=-15,y=55,w=128,h=55,fill="#6BB5E3")|rotate(40)
show(ex)
e1=ellipse(x=-85,y=0,w=150,h=100,fill="#1D6AD8 ",stroke="none")|rotate(15)
show(e1)
c2=circle(r=74)
show(c2)

e=ellipse(x=95,y=-85,w=300,h=130,fill="#0680BB ")|rotate(2)
show(e)
fc=circle(x=30,y=-83,r=44,fill="#5E3181  ")
show(fc)
c9=circle(x=30,y=-83,r=25,fill="#CDAAE9 ")
show(c9)
#filler
fil1=circle(r=200,stroke="white",stroke_width="151")
show(fil1)


show(r1)
show(r2)
show(dds)

tp1=point(x=-55,y=16)
tp2=point(x=-68,y=6)
tp3=point(x=-50,y=9)
show(polygon([tp1,tp2,tp3],fill="brown"))
e2=ellipse(x=-32,y=23,w=42,h=18,fill="#329691")|rotate(10)
show(e2)
e4=ellipse(x=130,y=-70,w=300,h=190,fill="white",stroke="none")|rotate(27)
show(e4)
show(petals)





e5=ellipse(x=-22,y=45,w=10,h=15,fill="#002E6E",stroke="none")|rotate(22)
etran=ellipse(x=-26,y=47,w=10,h=17,fill="#6BB5E3",stroke="none")|rotate(22)
show(e5)
show(etran)
e6=ellipse(x=-33,y=25,w=15,h=8,fill="white")|rotate(13)
show(e6)
pc=circle(x=-38,y=17,r=3,fill="black")
show(pc)

fill4=ellipse(x=7,y=-57,w=18,h=58,fill="#F9FBCC",stroke="none")|rotate(11)
show(fill4)


def path(d, fill):
    return Shape("path", d=d,fill=fill)



def arc(x1,y1,fill,**kwargs):
    x = x1* math.cos(math.radians(135))
    y = y1 * math.sin(math.radians(135))
    long_flag = int(135 > 180)
    if x1==99:
      d = f"M 0 74 A 65 90 100 {long_flag} 1 {x} {y}"
    else:
      d = f"M -24 70 A 65 90 100 {long_flag} 1 {x} {y}"
    return path(d,fill,**kwargs)
fill="#A73B79"
shape = arc(99,135,fill)
s=shape|repeat(4,rotate(36.25))
show(s)
x1=point(x=-82,y=-77)
x2=point(x=-70,y=95)
x3=point(-30,y=-67)
ss=polygon([x3,x1,x3],fill="#A73B79")
show(ss|repeat(4,rotate(-36.25)))
l10=line(x1=-42,y1=-60,x2=-82,y2=-117)
l11=line(x1=0,y1=74,x2=-70,y2=95)
r1=l11|repeat(4,rotate(36.25))
r2=l10|repeat(5,rotate(-36.25))
show(r2)
show(polygon([a54,a55,a56,a62],fill="#153d7d"))
show(polygon([a30,a29,a39,a40],fill="#251c1f"))