Courbes paramétrées - ellipses

In [10]:
t=var('t')
a=3
b=2

gamma=vector([a*cos(t),b*sin(t)])

gammad=vector([f.diff() for f in gamma])
tau=gammad/gammad.norm()

gammadd=vector([f.diff() for f in gammad])
nu=vector((-gammad[1],gammad[0]))/gammad.norm()

kappa=matrix([gammad,gammadd]).determinant()/gammad.norm()^3
deltadd=kappa*nu

liste_de_plots=[parametric_plot(gamma, (t,0,2*pi), ticks=[a,b])+
                arrow(gamma(s),gamma(s)+tau(s), arrowsize=1, color="green")+
                arrow(gamma(s),gamma(s)+deltadd(s), arrowsize=1, color="red") 
                for s in sxrange(0,2*pi,2*pi/200,include_endpoint=True)]

for g in liste_de_plots: g.set_axes_range(-1.1*a,1.1*a,-1.1*b,1.1*b)

animation=animate(liste_de_plots)
animation.show(delay=10)
In [11]:
liste_de_plots=[parametric_plot(gamma, (t,0,2*pi), ticks=[a,b])+
                circle(gamma(s)+1/kappa(s)*nu(s), abs(1/kappa(s)), color="red")+
                point(gamma(s), color="red", size=30)
                for s in sxrange(0.01,2*pi+0.01,2*pi/200,include_endpoint=True)]

c=max(a,b)
mx=max(1.1*a,-a+2*c^3/(a*b))
my=max(1.1*b,-b+2*c^3/(a*b))
m=max(mx,my)
for g in liste_de_plots: g.set_axes_range(-m,m,-m,m)

animation=animate(liste_de_plots)
animation.show(delay=10)