from turtle import * from kandinsky import fill_rect from time import sleep NB = 8 casio = ['M',64,86,'C',69,89,73,96,72,105,72,105,54,105,54,105,54,102,54,100,50,99,47,98,30,98,26,99,23,99,23,101,22,104,22,105,21,117,22,121,23,124,23,126,26,126,28,126,49,127,52,125,54,123,54,121,54,119,60,119,66,119,73,119,74,125,71,134,66,137,59,142,49,141,38,141,28,141,14,141,9,135,3,130,3,118,3,113,3,103,3,95,9,89,14,83,25,83,38,83,49,83,59,83,64,86,'M',111,97,'C',111,97,117,112,119,119,119,119,100,119,100,119,100,119,109,97,109,97,109,97,111,97,111,97,'Z','M',123,84,'C',123,84,146,140,146,140,146,140,127,140,127,140,127,140,123,130,123,130,123,130,96,130,96,130,96,130,92,140,92,140,92,140,73,140,73,140,73,140,97,84,97,84,97,84,123,84,123,84,'M',203,87,'C',207,91,209,97,209,101,209,101,192,101,192,101,192,99,190,97,188,97,181,96,177,96,169,97,167,97,165,98,165,101,165,106,169,106,183,106,186,106,197,106,203,108,205,109,212,112,212,124,212,130,208,138,202,139,196,141,186,141,180,141,174,141,166,142,157,140,153,139,150,135,149,132,147,129,147,123,147,123,147,123,165,123,165,123,165,126,166,128,169,128,176,129,179,129,190,128,190,128,193,127,193,124,194,121,192,120,190,119,177,118,165,119,159,117,155,116,147,112,147,102,148,96,148,92,152,88,157,84,167,83,179,83,193,83,200,84,203,87,'M',219,84,'C',219,84,237,84,237,84,237,84,237,140,237,140,237,140,219,140,219,140,219,140,219,84,219,84,'Z','M',270,99,'C',278,98,281,98,289,99,292,99,295,99,295,105,295,111,296,114,295,119,295,125,292,126,289,126,282,127,277,127,270,126,266,126,264,125,263,119,263,114,263,110,263,105,264,99,266,99,270,99,'Z','M',265,84,'C',271,83,272,83,279,83,288,84,287,83,293,84,309,85,314,92,313,106,313,106,313,119,313,119,314,134,309,140,290,141,286,141,286,141,279,141,272,141,273,141,269,141,250,140,245,134,245,119,245,119,245,106,245,106,245,93,250,85,265,84] fondcasio = (0,102,179) hp = ['M',161,215,'C',161,215,157,215,157,215,157,215,179,156,179,156,179,156,209,156,209,156,211,156,214,155,216,153,219,151,221,149,221,147,221,147,245,82,245,82,247,77,246,72,244,69,241,65,237,63,231,63,231,63,190,63,190,63,190,63,156,158,156,158,156,158,136,212,136,212,124,210,114,205,104,199,94,192,85,184,78,175,70,166,65,156,61,145,57,134,55,122,55,109,55,97,56,86,60,75,64,64,70,54,77,45,84,36,92,29,101,22,111,16,121,11,132,8,132,8,112,63,112,63,112,63,78,156,78,156,78,156,100,156,100,156,100,156,129,77,129,77,129,77,146,77,146,77,146,77,117,156,117,156,117,156,140,156,140,156,140,156,166,83,166,83,168,77,168,73,165,69,163,65,159,63,153,63,153,63,134,63,134,63,134,63,156,4,156,4,156,4,161,4,161,4,175,4,189,7,202,12,214,18,226,25,235,35,245,44,252,55,258,68,263,81,266,95,266,109,266,124,263,138,258,150,252,163,245,174,235,184,226,194,214,201,202,207,189,212,175,215,161,215,'Z','M',224,77,'C',224,77,207,77,207,77,207,77,184,142,184,142,184,142,201,142,201,142,201,142,224,77,224,77,'Z'] fondhp = (2,74,216) com = ['M',156,5,'C',98,5,52,51,52,109,52,166,98,212,156,212,167,212,177,210,187,207,187,207,187,156,187,156,179,161,169,163,158,163,126,163,101,139,101,109,101,78,126,54,158,54,169,54,179,57,187,62,187,62,187,10,187,10,177,7,167,5,156,5,156,5,156,5,156,5,'Z','M',265,69,'C',265,69,231,105,231,105,231,105,188,105,188,105,188,105,188,69,188,69,188,69,265,69,265,69,'Z','M',265,148,'C',265,148,231,112,231,112,231,112,188,112,188,112,188,112,188,148,188,148,188,148,265,148,265,148,'Z'] fondcom = (0,34,85) sharp = ['M',38,105,'C',30,104,23,103,23,100,23,97,28,96,36,97,44,98,51,100,58,103,58,103,63,94,63,94,57,92,46,90,36,90,25,89,7,90,6,101,5,111,20,114,29,116,38,118,47,119,47,122,47,124,44,126,36,126,26,125,18,122,10,118,10,118,4,127,4,127,13,131,25,133,36,134,49,134,64,132,64,121,64,112,55,108,38,105,'M',110,107,'C',110,107,83,107,83,107,83,107,83,91,83,91,83,91,69,91,69,91,69,91,69,132,69,132,69,132,83,132,83,132,83,132,83,116,83,116,83,116,110,116,110,116,110,116,110,132,110,132,110,132,124,132,124,132,124,132,124,91,124,91,124,91,110,91,110,91,110,91,110,107,110,107,'M',148,116,'C',148,116,158,100,158,100,158,100,167,116,167,116,167,116,148,116,148,116,'M',152,91,'C',152,91,127,132,127,132,127,132,138,132,138,132,138,132,143,124,143,124,143,124,172,124,172,124,172,124,177,132,177,132,177,132,194,132,194,132,194,132,169,91,169,91,169,91,152,91,152,91,'M',250,109,'C',254,104,253,98,247,94,241,91,229,90,222,90,211,90,203,90,197,91,197,91,197,132,197,132,197,132,211,132,211,132,211,132,211,98,211,98,216,97,221,97,223,97,229,97,232,98,234,100,237,101,238,106,234,108,232,111,227,112,215,110,215,110,214,113,214,113,214,113,235,132,235,132,235,132,255,132,255,132,255,132,235,116,235,116,240,115,247,113,250,109,'M',296,109,'C',293,111,290,111,284,111,280,111,276,110,272,110,272,110,272,98,272,98,277,97,283,97,285,97,290,97,293,98,296,100,298,101,299,106,296,109,'M',308,94,'C',302,91,292,90,283,90,272,90,264,90,258,91,258,91,258,132,258,132,258,132,272,132,272,132,272,132,272,117,272,117,277,118,282,119,287,118,298,118,307,116,311,111,316,105,315,98,308,94] fondsharp = (230,0,13) ti = ['M',246,72,'C',246,72,246,46,246,46,246,46,205,46,205,46,205,46,199,72,199,72,199,72,214,72,214,72,214,72,210,96,210,96,210,96,195,96,195,96,195,96,189,122,189,122,189,124,189,125,189,126,187,134,191,134,202,134,202,134,197,159,197,159,197,159,177,159,177,159,159,159,144,159,148,140,148,137,149,134,150,132,150,132,157,96,157,96,157,96,142,96,142,96,142,96,147,72,147,72,147,72,161,72,161,72,161,72,167,46,167,46,167,46,153,46,153,46,153,46,153,6,153,6,153,6,103,6,103,6,103,6,103,86,103,86,103,86,44,86,44,86,45,107,64,110,71,125,75,135,79,153,93,153,103,153,103,140,116,140,130,140,135,165,147,186,156,202,171,213,184,214,195,215,200,211,200,211,197,205,196,199,196,190,196,177,206,164,218,155,234,143,252,138,258,137,258,137,258,95,258,95,258,95,246,89,246,72,'Z','M',178,134,'C',178,134,196,46,196,46,196,46,176,46,176,46,176,46,158,134,158,134,158,134,178,134,178,134,178,134,178,134,178,134,'Z','M',201,18,'C',201,18,181,18,181,18,181,18,177,37,177,37,177,37,197,37,197,37,197,37,201,18,201,18,'Z'] fondti = (204,0,0) canon = ['M',54,130,'C',39,130,28,118,28,104,28,90,39,78,54,78,59,78,64,79,68,82,68,82,54,104,54,104,54,104,80,89,80,89,77,85,73,81,68,78,62,74,53,72,44,72,30,72,18,77,11,84,6,90,3,97,3,104,3,112,6,118,11,124,18,131,30,136,43,136,57,136,69,131,75,124,76,124,76,123,76,123,76,123,75,119,75,119,71,126,63,130,54,130,'M',107,128,'C',102,128,98,124,98,119,98,114,102,110,107,110,112,110,117,114,117,119,117,124,112,128,107,128,107,128,107,128,107,128,'Z','M',141,135,'C',141,135,130,94,130,94,128,88,122,83,115,83,113,83,111,83,109,84,109,84,86,92,86,92,86,92,110,92,110,92,110,92,114,108,114,108,110,104,105,102,99,102,88,102,79,110,79,119,79,128,88,136,99,136,107,136,115,132,119,126,119,126,121,135,121,135,121,135,141,135,141,135,141,135,141,135,141,135,'Z','M',185,83,'C',184,83,182,83,181,84,181,84,166,91,166,91,165,86,161,83,157,83,155,83,154,83,153,84,153,84,134,92,134,92,134,92,147,92,147,92,147,92,147,135,147,135,147,135,166,135,166,135,166,135,166,97,166,97,166,94,168,92,171,92,174,92,176,94,176,97,176,97,176,135,176,135,176,135,195,135,195,135,195,135,195,92,195,92,195,87,190,83,185,83,'M',231,91,'C',230,88,227,86,223,87,220,88,218,91,219,94,219,94,229,128,229,128,229,131,233,133,236,132,239,132,241,128,240,125,240,125,231,91,231,91,231,91,231,91,231,91,'Z','M',257,110,'C',257,124,245,136,230,136,215,136,203,124,203,110,203,95,215,83,230,83,245,83,257,95,257,110,257,110,257,110,257,110,'Z','M',305,83,'C',303,83,302,83,301,84,301,84,285,91,285,91,285,86,281,83,276,83,275,83,273,83,272,84,272,84,254,92,254,92,254,92,267,92,267,92,267,92,267,135,267,135,267,135,286,135,286,135,286,135,286,97,286,97,286,94,288,92,290,92,293,92,295,94,295,97,295,97,295,135,295,135,295,135,314,135,314,135,314,135,314,92,314,92,314,87,310,83,305,83] fondcanon = (204,0,0) def move(x,y): goto(x-160,110-y) def coord(a,b,c,d,t): return a*(1-t)**3+3*b*t*(1-t)**2+3*c*t*t*(1-t)+d*t**3 def bezier(l): pendown() t = 0 for i in range(NB+1): x = coord(l[0],l[2],l[4],l[6],t) y = coord(l[1],l[3],l[5],l[7],t) move(x,y) t += 1/NB speed(0) def logo(svg,fond): i = 0 fill_rect(0,0,320,222,fond) color('white') pensize(2) showturtle() while i<len(svg): if svg[i] == "M": l = [svg[i+1],svg[i+2]] penup() move(l[0],l[1]) i += 3 elif svg[i] == "Z" or svg[i] == "C": i += 1 else: for j in range(6): l.append(svg[i+j]) bezier(l) l = [svg[i+4],svg[i+5]] i += 6 hideturtle() sleep(2) while True: for (s,f) in (casio,fondcasio),(hp,fondhp),(ti,fondti),(sharp,fondsharp),(com,fondcom),(canon,fondcanon): logo(s,f)