[Résolu] Animation d'une figure

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[Résolu] Animation d'une figure

Messagepar boobamane » Lundi 12 Décembre 2016, 23:14

Bonjour,

J'ai une figure générée avec Géogébra que j'aimerais animer.
Le point M se déplaçant sur la bissectrice, tout en conservant l'égalité des distances
AM et MB.

Merci d'avance.

Code: Tout sélectionner
import graph;
import patterns;
size(11 cm);
real labelscalefactor = 0.5; /* changes label-to-point distance */
pen dps = linewidth(0.7) + fontsize(10); defaultpen(dps); /* default pen style */
pen dotstyle = black; /* point style */
real xmin = -3.32, xmax = 15.24, ymin = -3.27, ymax = 3.62;  /* image dimensions */
pen verte = rgb(0,0.60,0);
add("hachures1",hatch(H=1mm,dir=SE,verte));
add("hachures1",hatch(H=1mm,dir=NW,verte));
/* codage des angles */
filldraw((4.95,-1.86)--(5.08,-1.53)--(4.75,-1.41)--(4.63,-1.73)--cycle,pattern("hachures1"), .9verte);
filldraw((4.75,1.41)--(5.08,1.53)--(4.95,1.86)--(4.63,1.73)--cycle, pattern("hachures1"), .9verte);
filldraw(arc((0,0),0.5,0,20.56)--(0,0)--cycle, pattern("hachures1"), .9verte);
filldraw(arc((0,0),0.5,-20.56,0)--(0,0)--cycle, pattern("hachures1"), .9verte);
 /*figures */
draw(shift((0,0))*scale(0.18)*(expi(pi/4)--expi(5*pi/4)^^expi(3*pi/4)--expi(7*pi/4))); /* Marquage du point O */
draw((0,0)--(8,3), linewidth(2));
draw((0,0)--(8,-3), linewidth(2));
draw((0,0)--(9.79,0), linewidth(2) + red);

draw(shift((5.28,0))*scale(0.18)*(expi(pi/4)--expi(5*pi/4)^^expi(3*pi/4)--expi(7*pi/4))); /* Marquage du point M */
draw(shift((4.63,1.73))*scale(0.18)*(expi(pi/4)--expi(5*pi/4)^^expi(3*pi/4)--expi(7*pi/4))); /* Marquage du point a */
draw(shift((4.63,-1.73))*scale(0.18)*(expi(pi/4)--expi(5*pi/4)^^expi(3*pi/4)--expi(7*pi/4))); /* Marquage du point B */
draw((4.63,1.73)--(5.28,0), linewidth(2) + linetype("4 4")); /* Segment AM je le note mal */
draw((5.03,0.94)--(4.84,0.87), linewidth(2) + linetype("4 4"));/* Codage sur le segment AM */
draw((5.06,0.86)--(4.87,0.79), linewidth(2) + linetype("4 4"));/* Codage sur le segment AM */
draw((5.28,0)--(4.63,-1.73), linewidth(2) + linetype("4 4")); /* Segment MB je le note mal */
draw((5.06,-0.86)--(4.87,-0.79), linewidth(2) + linetype("4 4")); /* Codage sur  BM */
draw((5.03,-0.94)--(4.84,-0.87), linewidth(2) + linetype("4 4")); /* Codage sur  BM */

//draw(arc((0,0),0.5,0,20.56), verte);
//draw(arc((0,0),0.41,0,20.56), verte);
//draw(arc((0,0),0.5,-20.56,0), verte);
//draw(arc((0,0),0.41,-20.56,0), verte);

/* Noms des Points */
label("$O$", (-0.33,-0.12), NE * labelscalefactor);
label("$M$", (5.36,0.18), NE * labelscalefactor);
label("$A$", (4.58,1.93), NE * labelscalefactor);
label("$B$", (4.3,-2.1), NE * labelscalefactor);
Dernière édition par boobamane le Mardi 17 Janvier 2017, 00:05, édité 1 fois.
boobamane
Hecto-utilisateur
 
Messages: 50
Inscription: Dimanche 22 Janvier 2012, 13:47
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Animation d'une figure

Messagepar OG » Mardi 13 Décembre 2016, 22:10

Bonsoir

Je ne peux que répondre partiellement.
En enlevant dans le code les parties non essentielles (hachures, angle, double trait),
il faudrait déjà faire le code asymptote où partant d'un point M sur la bissectrice, la suite des calculs pour A et B se fait selon les coordonnées de M, au sens M.x, M.y.
Ainsi si on modifie juste les coordonnées de M, le reste suit. Ensuite viennent les améliorations (marquage des angles). In fine on peut alors construire une animation.

Sinon pour être sûr, M se déplace sur la bissectrice et MA perpendiculaire en A la droite supérieure du secteur angulaire (et du même acabit pour B) ?

Cordialement
O.G.
OG
Modérateur
 
Messages: 2214
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: Animation d'une figure

Messagepar boobamane » Dimanche 18 Décembre 2016, 23:16

Bonsoir,

Merci pour les astuces.
boobamane
Hecto-utilisateur
 
Messages: 50
Inscription: Dimanche 22 Janvier 2012, 13:47
Statut actuel: Actif et salarié | Enseignant

Re: Animation d'une figure

Messagepar chellier » Mardi 27 Décembre 2016, 15:19

boobamane a écrit:Bonjour,

J'ai une figure générée avec Géogébra que j'aimerais animer.
Le point M se déplaçant sur la bissectrice, tout en conservant l'égalité des distances
AM et MB.

Merci d'avance.


Bonjour,
Avec un peu de retard...

J'ai préféré repartir de zéro pour créer la figure, GeoGebra c'est bien, mais c'est quand même plus clair de produire directement le code.
Je n'ai pas reproduit les hachures, il faudrait remplacer les "Fill" par des "pattern".

Code: Tout sélectionner
import geometry;
import animate;
settings.tex="pdflatex";
settings.outformat="pdf";

size(11cm);

pen p = linetype("4 4"); // pointillés plus petits
marker croix = marker(scale(4)*cross(4),linewidth(bp)); // croix des points

transform ref = reflect(Ox); // symétrie axiale par rapport à (Ox)
point O = (0,0), A = (3,1), B = ref*A;
line om = line(O,false,(1,0)), // demi-droite (false en O)
     oa = line(O,false,A), ob = line(O,false,B);

animation MonAnim;

markangle(B,O,A,bp+deepgreen,Fill(palegreen));
draw("$O$",O,1.5W,croix);
draw(om, bp+red);
draw(oa^^ob,linewidth(bp));
draw((0,-2)--(5,2),invisible); // pour que la figure ait des dimensions fixes

MonAnim.add();

// jouer sur l'incrémentation de i et delay pour la fluidité et le poids du fichier
for(real i=.6; i<4.5; i=i+.05) {
  save();
  point M=relpoint(Ox,i), A=projection(oa)*M, B=projection(ob)*M;
  draw(A--M--B,p+bp,StickIntervalMarker(2,2,linewidth(bp)));
  markrightangle(O,A,M,2bp+deepgreen,Fill(palegreen));
  markrightangle(M,B,O,2bp+deepgreen,Fill(palegreen));
  draw("$A$",A,1.5N,croix);
  draw("$B$",B,1.5S,croix);
  draw("$M$",M,1.5NE,croix);
  MonAnim.add();
  restore();
}

erase(); // pour éviter les "décalages"
//MonAnim.movie(); // pdf multipage
label(MonAnim.pdf("controls",delay=100)); // pdf avec boutons de contrôle


En fichier joint, le pdf produit (à ouvrir avec Acrobat Reader pour pouvoir utiliser les boutons).

Christophe
Fichiers joints
animBissectrice.pdf
À ouvrir avec Acrobat reader pour voir l'animation
(161.36 Kio) Téléchargé 35 fois
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Animation d'une figure

Messagepar boobamane » Mardi 17 Janvier 2017, 00:03

Merci d'avoir repris.
C'est exactement ce que je voulais faire. Merci.
boobamane
Hecto-utilisateur
 
Messages: 50
Inscription: Dimanche 22 Janvier 2012, 13:47
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Animation d'une figure

Messagepar OG » Jeudi 26 Janvier 2017, 20:37

Bonsoir

J'ai répondu à la question posée ailleurs et après : comment inclure cette animation dans un fichier LaTeX.
C'est ici
http://asy.gmaths.net/forum/topic418.html

O.G.
OG
Modérateur
 
Messages: 2214
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Magpie [Crawler] et 1 invité