a = 1.0 t = var('t') xtreme=3 myaxes = line([[-xtreme,0],[xtreme,0]],rgbcolor = (0,0,0)) myaxes = myaxes + line([[0,-xtreme],[0,xtreme]],rgbcolor = (0,0,0)) def nephroid(theta): C = circle((0,0),a,rgbcolor = (0,0,0)) A=[a,0] O=[0,0] M=[a*cos(theta),a*sin(theta)] l=a*sqrt(2*(1-cos(theta))) P1=[a*cos(theta)-l*a*cos(theta),a*sin(theta)-l*a*sin(theta)] P2=[a*cos(theta)+l*a*cos(theta),a*sin(theta)+l*a*sin(theta)] L1 = line([P1,P2]) L2 = line([A,M]) M=point(M) A=point(A) P1=point(P1) P2=point(P2) O=point(O) return C+O+A+M+P1+P2+L1+L2+myaxes def Freeth(theta): ne = nephroid(theta) Freethplot = parametric_plot([(1+2*sin(t/2))*cos(t), (1+2*sin(t/2))*sin(t)],[t,0,theta], rgbcolor = (1,0,1)) return ne+Freethplot a2 = animate([Freeth(i) for i in srange(float(0),float(4*pi),float(pi)/30)],aspect_ratio=1) a2.show()