plot(atan,(-2,2))
plot(-x^2 + 0.3*cos(20*x))
var('u, v')
f1=(4+(3+cos(v))*sin(u),4+(3+cos(v))*cos(u), 4+sin(v))
f2=(8+(3+cos(v))*cos(u),3+sin(v), 4+(3+cos(v))*sin(u))
p1=parametric_plot3d(f1,(u,0,2*pi),(v,0,2*pi),color="red", opacity=0.5, aspect_ratio=[1,1,1])
p2=parametric_plot3d(f2,(u,0,2*pi),(v,0,2*pi),color="blue", opacity=0.5)
p1+p2
Vous allez maintenant essayer de tracer le flocon de Koch
Avec la commande line(), tracez un triangle.
La commande line() (comme circle() ou plot()) renvoie un graphique, que vous pouvez aussi créer directement Graphics(). Vous pouvez ajouter des objet à un graphique et vous avez des options d'affichage par exemple G.show(axes=False).
En vous souvenant de la matrice de la rotation d'angle $\pi/3$, tracez un triangle équilatéral puis une étoile de David.
Pour tracer le flocon de Koch, nous avons besoin d'une fonction qui sous-divise un segment en quatre segments. Écrivez-donc une fonction subdivise(segment) qui prend en argument une liste de deux points (chaque point est lui-même une liste de deux coordonnées) et qui renvoie une liste de quatre segments (chaque segment est une liste de deux points, etc.) comme dans le flocon de Koch.
line([(0,0),(1,0),(1.5,0.866),(2,0),(3,0)]).show(axes=False,aspect_ratio=True)
Il faut maintenant appeler récursivement la fonction subdivise() (disons avec une profondeur de 3 pour commencer). Écrivez une fonction trace_Koch(segment,profondeur=3) qui trace le segment si la profondeur est nulle et qui s'appelle elle-même avec les quatre sous-segments et une profondeur diminuée de 1 sinon. <font size=-1>(Le profondeur=3 dans l'appel de la fonction signifie que 3 est la valeur par défaut de profondeur, c'est-à-dire que l'utilisateur peut choisir d'omettre ce deuxième paramètre: trace_Koch([(1,0),(0,0)]) dans ce cas la fonction reçoit profondeur=3.)</font>