Français : Voisinage tubulaire de la courbe y=sin(x)
defmain():f=sin(x)a=0b=2*piN=1000# consider N points in the interval [a, b]X=[a+(b-a)/N*kforkinrange(N+1)]Y=[f(x=u)foruinX]ll=3# length of lines perpendicular to the curvells=0.3# smaller subsegmentsthin_line=2thick_line=4# will draw lines perpendicular to the graph of Y=f(X) at# points separted by length of 'spacing'spacing=0.015M=floor(spacing*N)# colorsred=[0.867,0.06,0.14]blue=list(vector([0,129,205])/QQ(256))green=list(vector([0,200,70])/QQ(256))G=Graphics()# plot the linesforkinrange(1,N+1):p=(k-1)*M+2ifp>=N:break# the normal to the curve at (X(p), Y(p))Normal=vector([-(Y[p+1]-Y[p-1]),X[p+1]-X[p-1]])Normal=Normal/norm(Normal)G+=line([(X[p]-lls*Normal[0],Y[p]-lls*Normal[1]),(X[p]+lls*Normal[0],Y[p]+lls*Normal[1])],color=red,thickness=0.7*thick_line)# plot the curveG+=line2d(zip(X,Y),thickness=thick_line,color=blue)G.axes(False)G.set_aspect_ratio(1)returnG
de partager – de copier, distribuer et transmettre cette œuvre
d’adapter – de modifier cette œuvre
Sous les conditions suivantes :
paternité – Vous devez donner les informations appropriées concernant l'auteur, fournir un lien vers la licence et indiquer si des modifications ont été faites. Vous pouvez faire cela par tout moyen raisonnable, mais en aucune façon suggérant que l’auteur vous soutient ou approuve l’utilisation que vous en faites.
partage à l’identique – Si vous modifiez, transformez ou vous basez sur cet élément, vous devez distribuer votre contribution sous une license identique ou compatible à celle de l’original.