restart: kernelopts(version) ; OneFrame := proc(k) local Courbe, T, a, b, c, t, P, Q, NormM, F, Ell, sol, N1, N2, dr, tx; local MySol: uses geometry: _EnvHorizontalName := x: _EnvVerticalName := y: a := 11; b := 7; c := sqrt(a^2 - b^2); t := 1/3*Pi; Ell := x^2/a^2 + y^2/b^2 = 1; point(T, (a^2 - b^2)*cos(t)^3/a, -(a^2 - b^2)*sin(t)^3/b); Courbe := plots:-implicitplot(Ell, x = -a - 10 .. a + 10, y = -b - 10 .. b + 10, scaling = constrained, color = blue, grid=[50, 50]); NormM := plots:-implicitplot(y - b*sin(t) = a*sin(t)*(x - a*cos(t))/(b*cos(t)), x = -a - 5 .. a + 10, y = -b - 10 .. b + 10, color = orange); line(Per, y - b*sin(t) = a*sin(t)*(x - a*cos(t))/(b*cos(t)), [x, y]); point(P, [solve(subs(y = 0, lhs(Equation(Per)))), 0]); point(Q, [0, solve(subs(x = 0, lhs(Equation(Per))))]); point(M, [a*cos(t), b*sin(t)]); point(N1, [a*cos(k), b*sin(k)]); point(F, [2.329411765, -2.567510609]); line(L, [N1, F]); sol := solve({Equation(L), Ell}, {x, y},explicit); min(map(t -> eval(y, t), [%])); MySol := select(s -> has(s, y=%), [sol])[]; point(N2, eval([x, y], MySol)); segment(sg, N1, N2); tx := plots:-textplot([[coordinates(M)[], "M"],[coordinates(N1)[], "N1"],[coordinates(N2)[], "N2"],[coordinates(P)[], "P"],[coordinates(Q)[], "Q"],[coordinates(F)[], "F point de Frégier"],[coordinates(T)[], "T"]], font = [times, bold, 16], align = [above, left]); dr := draw([sg(color = magenta, linestyle = dash),Per(color = black), P(color = red, symbol = solidcircle, symbolsize = 12),Q(color = red, symbol = solidcircle, symbolsize = 12),M(color = black, symbol = solidcircle, symbolsize = 12),F(color = red, symbol = solidcircle, symbolsize = 12),N1(color = black, symbol = solidcircle, symbolsize = 8)]); plots:-display(Courbe, tx, dr, scaling = constrained, axes=normal, view=[-15..15, default]); end proc: plots:-animate('OneFrame', [k], k = Pi/3 .. Pi, frames = 50);