restart;with(plots):with(plottools):
wheel:=disk([0,0],20.5,color=red):
base:=polygon([[0,0],[35,0],[35,10],[0,10],[0,0]],color=black):
stand:=polygon([[-30,-10],[-53,-10],[0,10],[0,0]]):
face:=polygon([[50,20],[0,20],[0,0],[50,0]],color=tan):
rim:=disk([0,0],15, color=white):
cannon:=display(scale(rim, 1.25, 1.25),wheel,stand,base,scaling=constrained):
catear:=polygon([[0,20],[7.5,30],[15,20]],color=gold):
catear2:=polygon([[35,20],[42.5,30],[50,20]],color=gold):
catt:=display(face,catear,catear2):
smile:=display(sector([25, 10], 4, Pi..2*Pi), scaling=constrained):
eye:=disk([10,15],3):
eye2:=disk([40,15],3):
eyes:=display(eye,eye2):
caat:=display(smile,eyes,catt):
catbody:=ellipse([10,10],30, 12.5, filled=true, color=tan):
catpaw:=ellipse([10,10],25, 5, filled=true, color=tan):
catpaw2:=ellipse([10,10],15, 5, filled=true, color=tan):
fullcat:=display(translate(caat, 85,65),translate(catpaw, 115, 48.5),translate(catpaw2, 35, 48.5),translate(catbody, 70, 52.5),translate(catpaw2, 35, 52.5)):
frame1:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),fullcat,scaling=constrained):
frame2:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,15,5),scaling=constrained):
frame3:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,30,10),scaling=constrained):
frame4:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,40,15),scaling=constrained):
frame5:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,60,20),scaling=constrained):
frame6:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,75,25),scaling=constrained):
frame7:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,100,30),scaling=constrained):
frame8:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,125,35),scaling=constrained):
frame9:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,140,40),scaling=constrained):
frame10:=display(scale(translate(cannon, 0, 20), 2.5, 2.5),translate(fullcat,155,45),scaling=constrained):
movementline:=line([100, 100],[140,100]):
frame11:=display(fullcat,movementline, translate(movementline, -25, -70), translate(movementline, -60, -20)):
frame12:=display(fullcat, translate(movementline, -25,0), translate(movementline, -50, -70), translate(movementline, -80, -20)):
frame13:=display(fullcat, translate(movementline, -50,0), translate(movementline, -100, -70), translate(movementline, -85, -20)):
frame14:=display(fullcat, translate(movementline, -75,0), translate(movementline, -150, -70), translate(movementline, -120, -20)):
frame15:=display(fullcat, translate(movementline, -100,0)):
frame16:=display(fullcat, translate(movementline, -125,0)):
frame17:=display(fullcat, translate(movementline, -150,0)):
frame18:=display(fullcat, translate(movementline, -175,0)):
frame19:=display(fullcat):
endwall:=rectangle([160,160],[250,0],color=gray):
frame20:=display(frame19, endwall):
frame21:=display(endwall,translate(frame19,15,0)):
frame22:=display(endwall,translate(frame19,20,0)):
frame23:=display(endwall,translate(frame19,25,0)):
frame24:=display(endwall,translate(frame19,30,0)):
frame25:=display(endwall,translate(frame19,35,0)):
frame26:=display(endwall,translate(frame19,40,0)):
frame27:=display(endwall,translate(frame19,45,0)):
frame28:=display(endwall,translate(frame19,50,0)):
frame29:=display(endwall,translate(frame19,55,0)):
frame30:=display(endwall,translate(frame19,60,0)):
frame31:=display(endwall,translate(frame19,65,0)):
frame32:=display(endwall,translate(frame19,70,0)):
frame33:=display(endwall,translate(frame19,75,0)):
frame34:=display(endwall,translate(frame19,80,0)):
frame35:=display(endwall, rotate(translate(catpaw2, 115, 48.5),Pi/6,[135,59]), translate(catbody, 150, 52.5), rotate(translate(catpaw2, 115, 52.5),Pi/.55,[135,63])):
frame36:=display(endwall, rotate(translate(catpaw2, 115, 48.5),Pi/10,[135,59]), translate(catbody, 150, 52.5), rotate(translate(catpaw2, 115, 52.5),Pi/.55,[135,63])):
frame37:=display(frame34):
frame38:=display(endwall, rotate(translate(catpaw2, 115, 48.5),Pi/10,[135,59]), translate(catbody, 150, 52.5), rotate(translate(catpaw2, 115, 52.5),Pi/.55,[135,63])):
frame39:=display(frame34):
frame40:=display(endwall, rotate(translate(catpaw2, 115, 48.5),Pi/10,[135,59]), translate(catbody, 150, 52.5), rotate(translate(catpaw2, 115, 52.5),Pi/.55,[135,63])):
frame41:=display(frame34):
display([frame1,frame2,frame3,frame4,frame5,frame6,frame7,frame8,frame9,frame10,frame11,frame12,frame13,frame14,frame15,frame16,frame17,frame18,frame19,frame20,frame21,frame22,frame23,frame24,frame25,frame26,frame27,frame28,frame29,frame30,frame31,frame32,frame33,frame34,frame35,frame36,frame37,frame38,frame39,frame40,frame41],insequence=true, axes=none, scaling=constrained);
speed 10