Je me suis amusé à travailler un exemple de GM.
Par contre j'ai quelques artefacts que je ne m'explique pas.
Une idée peut-être ?
Merci
Voici le code : pardonnez moi mais je galère avec les balises ...
import geometry;
import animate;
settings.tex="pdflatex";
settings.outformat="pdf";
usepackage("xcolor");
unitsize(0.8cm);
real x_min=-4,
x_max=4,
y_min=-4,
y_max=4,
//----- Les unités sur chaque axe ------------------------------
k=1, // Nb de cm par unité sur Ox
h=1; // Nb de cm par unité sur Oy
//------- Axe des x -----------------------------------------------
draw((x_min,0)--(x_max,0),1bp+black,arrow=Arrow(size=2mm)); // Axe des x
for(real i=0; i<x_max; i=i+1){
draw((i,-0.1)--(i,0.1),0.5bp+black); // tirets positifs sur Ox
}
for(real i=0; i>x_min; i=i-1){
draw((i,-0.1)--(i,0.1),0.5bp+black); // tirets négatifs sur Ox
}
for(int k=1; k<=4; k=k+1){
label(format("\scriptsize %i",k),(k,-0.3),gray(0.5));//valeurs positives sur Ox
}
for(int k=1; k<=4; k=k+1){
label(format("\scriptsize %i",-k),(-k,-0.3),gray(0.5));//valeurs negatifs sur Ox
}
//------ Axe des x ---------------------------------------------
//------- Axe des y -----------------------------------------------
draw((0,y_min)--(0,y_max),1bp+black,arrow=Arrow(size=2mm)); // axe des y
for(real k=0; k<y_max; k=k+1){
draw((-0.1,k)--(0.1,k),0.5bp+black); // tirets positifs sur Oy
}
for(real k=0; k>y_min; k=k-1){
draw((-0.1,k)--(0.1,k),0.5bp+black); // tirets négatifs sur Oy
}
for(int k=1; k<=4; k=k+1){
label(format("\scriptsize %i",k),(-0.3 ,k),gray(0.5));//valeurs positives sur Ox
}
for(int k=1; k<=4; k=k+1){
label(format("\scriptsize %i",-k),(-0.3 , -k),gray(0.5));//valeurs negatifs sur Ox
}
//-------- Axe des y ----------------------------------------------
animation A;
real R=3, r=1,k=2;
pair pO=(0,0), pA=(R,0), pC=(R+r,0), pB=(R+k*r,0), pM, pN, pD, pE;
path Epitrochoide;
draw(scale(R)*unitcircle,1bp+blue);
label(scale(0.6)*("\fcolorbox{black}{gray!10}{
![R=3 R=3](/forum/latexrender/pictures/0b2d18a5d69d90af5eb3db0804bbb92a.png)
![r=1 r=1](/forum/latexrender/pictures/7c6270537cb2cf1c86fd46bbc6975dd3.png)
![k=2 k=2](/forum/latexrender/pictures/38c9abaca4c0e762d42281e967e45959.png)
(3,3),N);
for(int t=0; t<=360; t+=2) {
save();
pM=rotate(t,pO)*pA;
pD=rotate(t,pO)*pC;
pE=rotate(t,pO)*pB;
pN=rotate(R*t/r,pD)*pE;
Epitrochoide=Epitrochoide..pN;
draw(circle(pD,r));
draw(Epitrochoide,0.5bp+red);
draw(pD--pN,1bp+black);
dot(pD,3bp+black);
dot(pN,3bp+black);
A.add();
restore();
}
erase();
A.movie();