import geometry; size(7.5cm,0); // Affichage du repère par défaut (O,vec{i},vec_{j}) show("",defaultcoordsys); real a=5, b=4, theta=-40, poids=3; ellipse el = ellipse(origin, a, b); arc ar = arc(el,(0,-b),(a,0),CCW); path p = (0,-b-1)--ar--(a+1,0)--(a+1,-b-1)--cycle; point pO = (0,0), pM=angpoint(ar,90+theta); abscissa abscM = nodabscissa(el,pM); real timeM = abscM.x; vector utangM = -dir(el,timeM), unormM = rotate(90)*utangM, vpoids=(0,-poids), vreactionN = -dot(vpoids,unormM)*unormM, vfrottement = -dot(vpoids,utangM)*utangM; filldraw(p,lightgray,blue); draw(pO--pM,dashed); markangle("$\theta$",1.5cm,pM,origin,(1,0)); // Affichage d'un nouveau repère (M,vec{u_{\theta}},vec_{u_{r}}) coordsys R=cartesiansystem(pM,i=utangM,j=unormM); show("$M$", "$\vec{u_{\theta}}$", "$\vec{u_{r}}$", R, xpen=invisible); // Affichage des vecteurs "dans un repère ou l'autre" // façon de parler pour dire que l'on en trace un représentant // à partir de l'origine d'un repère ou de l'autre. show("",utangM); show("",unormM); show("",origin(R)+vfrottement); show("",origin(R)+vreactionN); show("",origin(R)+vpoids);