xtreme = 4.1

myaxes = line([[-xtreme,0],[xtreme,0]],rgbcolor = (0,0,0))

myaxes = myaxes + line([[0,-1],[0,2.1]],rgbcolor = (0,0,0))

a = 1.0

t = var('t')

npi = RDF(pi)

def agnesi(theta):

mac = circle((0,a),a,rgbcolor = (0,0,0))

maL = line([[-xtreme,2*a],[xtreme,2*a]])

maL2 = line([[0,0],[2*a*cot(theta),2*a]])

p1 = [2*a*cot(theta),2*a*sin(theta)^2]

p2 = [2*a*cot(theta)-cot(theta)*(2*a-2*a*sin(theta)^2),2*a*sin(theta)^2]

maL3 = line([p2,p1,[2*a*cot(theta),2*a]], rgbcolor = (1,0,0))

map1 = point(p1)

map2 = point(p2)

am = line([[-.05,a],[.05,a]], rgbcolor = (0,0,0))

at = text('a',[-.1,a], rgbcolor = (0,0,0))

yt = text('y',[0,2.2], rgbcolor = (0,0,0))

xt = text('x',[xtreme + .1,-.1], rgbcolor = (0,0,0))

#tt = text('t',[.15,.1], rgbcolor = (0,0,0))

matext = at+yt+xt

ma = mac+myaxes+maL+am+matext+maL2+map1+maL3+map2

return ma

def witchy(theta):

ma = agnesi(theta)

agplot = parametric_plot([2*a*cot(t),2*a*sin(t)^2],[t,.001,theta], rgbcolor = (1,0,1))

return ma+agplot

a2 = animate([witchy(i) for i in srange(.1,npi-.1,npi/60)]+[witchy(i) for i in srange(npi-.1,.1,-npi/60)], xmin = -3, xmax = 3, ymin = 0, ymax = 2.3, figsize = [6,2.3], axes = False)

a2.show()

## Thursday, July 23, 2009

### Witch of Maria Agnesi

There's one on wikipedia like this, but for an upcoming class I wanted to do it in Sage:

Subscribe to:
Post Comments (Atom)

## 3 comments:

Can you put this animation up somewhere on the Sage wiki?

OK, I put it on http://wiki.sagemath.org/pics.

-Marshall

Is she flying on her broom?

Post a Comment