## import math import time g.norefresh() def lerp(x,y,step): return x*(1.0-step)+y*step def drawPoly(points): for n in range(len(points)-1): g.line(points[n][0],points[n][1],points[n+1][0],points[n+1][1]) def initPoly(x,y,radius): poly = [] for n in range(0,360,36): x1 = int(0.5+x+radius*math.cos(n*2*math.pi/360)) y1 = int(0.5+y+radius*math.sin(n*2*math.pi/360)) poly.append([x1,y1]) poly.append(poly[0]) return poly def lerpPoly(p1,p2,step): #for now, assume equal number of points p3 = [] for n in range(len(p1)): x = int(lerp(p1[n][0],p2[n][0],step)) y = int(lerp(p1[n][1],p2[n][1],step)) p3.append((x,y)) return p3 p = initPoly(g.getMouse(1),g.getMouse(2),17) while 1: g.refresh() g.paper(0) time.sleep(2) p2 = initPoly(g.getMouse(1),g.getMouse(2),17) p2.reverse() for n in range(101): g.paper(0) g.pen(20) for m in range(0,n,10): drawPoly(lerpPoly(p,p2,m/100.0)) g.pen(100) drawPoly(lerpPoly(p,p2,n/100.0)) g.refresh() p2.reverse() p = p2