Plusieurs questions sur l'animation

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.

Plusieurs questions sur l'animation

Messagepar loicwood » Samedi 23 Février 2013, 23:48

Bonsoir,

j'essaye de construire une animation qui permet de de visualiser la fréquence d'apparition de la somme des deux dés suivant le nombre de simulations.

Voici le code que j'ai actuellement :
Code: Tout sélectionner
import math;
import graph;
import animate;

settings.tex="pdflatex";
settings.outformat="pdf";

animation A;

int n=250;

unitsize(1cm,10cm);

//real xmin=0, xmax=12, ymin=0, ymax=1

real[] s={0,0,0,0,0,0,0,0,0,0,0,0,0};
real[] t={0,0,0,0,0,0,0,0,0,0,0,0,0};

for (int i=1; i<=n;++i){
save();
int de1=floor(unitrand()*6+1), de2=floor(unitrand()*6+1), de3=floor(unitrand()*6+1), de4=floor(unitrand()*6+1);

int som_de=de1+de2, som_de2=de3+de4;

s[som_de]=s[som_de]+1/n;
t[som_de2]=t[som_de2]+1/n;

xaxis("sommes", xmin=0,xmax=13,Ticks(Step=1),Arrow);
yaxis("fr\'equences", ymin=0, ymax=0.3,Ticks(Step=0.1),Arrow);

label("simulation n$^{\circ}$ :",(10,0.3));
label(format(" %i",i),(11.7,0.3));

for(int j=2;j<=12;++j){
draw((j+0.1,0)--(j+0.1,s[j]),blue+2bp);
draw((j-0.1,0)--(j-0.1,t[j]),red+2bp);

}

A.add();
restore();
}
//erase();
//A.movie(delay=50);
//label(A.pdf(BBox(1mm,nullpen),delay=50,"controls"));
A.glmovie();


J'obtiens un PDF sans problème, mais je n'arrive pas à obtenir un gif (j'utilise notepad++ avec NPPexec, j'ai essayé les compilations asy.exe -V $(FILE_NAME), asy.exe -f gif etc) sans succès. Je voudrais savoir s'il est possible également d'obtenir l'animation dans le même type de fenêtre que les graphiques 3D ?

Autre question : peut-on mettre plusieurs animations les unes au des dessous des autres sur une même page ?

Autre souci : dans le PDF, la première image de l'animation laisse apparaître deux bâtons plus grands que les autres, ce qui me paraît incongru.

Enfin, dernier problème, j'ai beau effacer le fichier PDF, quand je recompile, j'obtiens toujours le même graphique final... Le fichier est disponible ici.

Merci.
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Plusieurs questions sur l'animation

Messagepar loicwood » Dimanche 24 Février 2013, 10:42

Je viens de faire quelques essais avec la fonction rand() : elle renvoie toujours les mêmes nombres dès lors que l'on ferme puis relance Asymptote. Comment avoir des vrais nombres tirés au hasard ?
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar chellier » Dimanche 24 Février 2013, 12:10

loicwood a écrit:Bonsoir,

j'essaye de construire une animation qui permet de de visualiser la fréquence d'apparition de la somme des deux dés suivant le nombre de simulations.

...

J'obtiens un PDF sans problème, mais je n'arrive pas à obtenir un gif (j'utilise notepad++ avec NPPexec, j'ai essayé les compilations asy.exe -V $(FILE_NAME), asy.exe -f gif etc) sans succès. Je voudrais savoir s'il est possible également d'obtenir l'animation dans le même type de fenêtre que les graphiques 3D ?

Bonjour,
Pour obtenir un gif, enlever : settings.outformat="pdf" et mettre A.movie(delay=50) comme sortie par exemple et compiler par asy -noV -f gif.

loicwood a écrit:Autre question : peut-on mettre plusieurs animations les unes au des dessous des autres sur une même page ?

Pour moi le plus simple est de tout mettre dans un fichier tex avec des balises "asy", voir le fichier exemple "inlinemovie.tex" de la documentation officielle.

loicwood a écrit:Autre souci : dans le PDF, la première image de l'animation laisse apparaître deux bâtons plus grands que les autres, ce qui me paraît incongru.

Je n'ai pas vraiment remarqué...

loicwood a écrit:Enfin, dernier problème, j'ai beau effacer le fichier PDF, quand je recompile, j'obtiens toujours le même graphique final... Le fichier est disponible ici.

Merci.

Ah ici c'est le problème des nombres aléatoires en informatique qui n'en sont pas vraiment... ce n'est pas un problème spécifique à asymptote, et je ne sais pas si on peut arranger la situation.

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar OG » Dimanche 24 Février 2013, 12:19

Pour les nbres aléatoires c'est classique il faut initialiser le generateur avec l'heure.
O.G
OG
Modérateur
 
Messages: 2285
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: Plusieurs questions sur l'animation

Messagepar loicwood » Dimanche 24 Février 2013, 13:15

chellier a écrit: loicwood a écrit:Autre souci : dans le PDF, la première image de l'animation laisse apparaître deux bâtons plus grands que les autres, ce qui me paraît incongru.


Je n'ai pas vraiment remarqué...


J'ai affiché les valeurs initiales sur le graphique, une des valeurs est différente de 0.

chellier a écrit:Bonjour,
Pour obtenir un gif, enlever : settings.outformat="pdf" et mettre A.movie(delay=50) comme sortie par exemple et compiler par asy -noV -f gif.


Merci ! Est-il possible d'obtenir le graphique directement dans la fenêtre qui s'ouvre quand on trace un graphique en 3D ?

OG a écrit:Pour les nbres aléatoires c'est classique il faut initialiser le generateur avec l'heure.


Je viens de trouver :
Code: Tout sélectionner
srand((int)time("%H%M%S"));


Merci !
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar chellier » Dimanche 24 Février 2013, 14:09

loicwood a écrit:Merci ! Est-il possible d'obtenir le graphique directement dans la fenêtre qui s'ouvre quand on trace un graphique en 3D ?

Comme ce n'est pas de la 3D, je ne pense pas... Peut-être est-ce possible en projetant le graphique dans un plan, mais ce n'est qu'une idée comme ça et ça me semble un peu compliqué !

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar loicwood » Dimanche 24 Février 2013, 14:31

Quand je parle de la fenêtre, je veux dire que je ne veux pas avoir un fichier en sortie, juste voir le graphique se créer en temps réel.
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar chellier » Dimanche 24 Février 2013, 14:36

loicwood a écrit:Quand je parle de la fenêtre, je veux dire que je ne veux pas avoir un fichier en sortie, juste voir le graphique se créer en temps réel.

Oui, j'avais bien compris, mais c'est une fenêtre "OpenGL" , donc pour la 3D. Je ne sais pas si c'est faisable autrement, quelqu'un d'autre peut-être ?

Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar loicwood » Dimanche 24 Février 2013, 16:55

J'essaye d'inclure le code dans un fichier tex, cela compile, mais je n'ai pas d'animation, et pas de contrôles. Comment dois-je modifier les dernières lignes ?

Le but final est d'avoir plusieurs graphiques, mais dépendant d'une seule animation.

Pour l'instant, voilà le code que j'insère dans mon donc LaTeX :
Code: Tout sélectionner
\begin{center}
\begin{asy}
import math;
import graph;
import animate;

settings.tex="pdflatex";
settings.outformat="pdf";

animation A=animation("movie1");

int n=10;

unitsize(0.5cm,10cm);

//real xmin=0, xmax=12, ymin=0, ymax=1

real[] s={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
real[] t={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

srand((int)time("%H%M%S"));

for (int i=1; i<=n;++i){

save();
int de1=floor(unitrand()*6+1), de2=floor(unitrand()*6+1), de3=floor(unitrand()*6+1), de4=floor(unitrand()*6+1);

int som_de=de1+de2, som_de2=de3+de4;

s[som_de]=s[som_de]+1/n;
t[som_de2]=t[som_de2]+1/n;

xaxis("sommes", xmin=0,xmax=13,Ticks(Step=1),Arrow);
yaxis("fr\'equences", ymin=0, ymax=0.3,Ticks(Step=0.1),Arrow);

label("simulation n$^{\circ}$ :",(10,0.3));
label(format(" %i",i),(11.7,0.3));

for(int j=1;j<=12;++j){
draw((j+0.1,0)--(j+0.1,s[j]),blue+2bp);
draw((j-0.1,0)--(j-0.1,t[j]),red+2bp);
//label(format("%f",s[j]),(j,0.25));
}

A.add();
restore();
}
erase();
//A.movie(delay=50,"controls");
//label(A.pdf(BBox(1mm,nullpen),delay=50,"controls"));
label(A.pdf("controls",delay=50,keep=!settings.inlinetex));
//A.glmovie();
\end{asy}
\ASYanimategraphics[controls]{150}{movie1}{}{}
\end{center}
\begin{center}
\begin{asy}
import math;
import graph;
import animate;

settings.tex="pdflatex";
settings.outformat="pdf";

animation A=animation("movie1");

int n=10;

unitsize(0.5cm,10cm);


//real xmin=0, xmax=12, ymin=0, ymax=1

real[] s={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
real[] t={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

srand((int)time("%H%M%S"));

for (int i=1; i<=n;++i){

save();
int de1=floor(unitrand()*6+1), de2=floor(unitrand()*6+1), de3=floor(unitrand()*6+1), de4=floor(unitrand()*6+1);

int som_de=de1+de2, som_de2=de3+de4;

s[som_de]=s[som_de]+1/n;
t[som_de2]=t[som_de2]+1/n;

xaxis("sommes", xmin=0,xmax=13,Ticks(Step=1),Arrow);
yaxis("fr\'equences", ymin=0, ymax=0.3,Ticks(Step=0.1),Arrow);

label("simulation n$^{\circ}$ :",(10,0.3));
label(format(" %i",i),(11.7,0.3));

for(int j=1;j<=12;++j){
draw((j+0.1,0)--(j+0.1,s[j]),blue+2bp);
draw((j-0.1,0)--(j-0.1,t[j]),red+2bp);
//label(format("%f",s[j]),(j,0.25));
}

A.add();
restore();
}
erase();
//A.movie(delay=50,"controls");
//label(A.pdf(BBox(1mm,nullpen),delay=50,"controls"));
label(A.pdf("controls",delay=50,keep=!settings.inlinetex));
//A.glmovie();
\end{asy}
\ASYanimategraphics[controls]{150}{movie1}{}{}
\end{center}


J'ai également un autre problème, je n'arrive pas à gérer la taille du graphique (unitsize(1cm, 5cm) fait sortir le graphique de la page).

Enfin, le problème de l'aléatoire réapparaît avec ce code...
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar chellier » Dimanche 24 Février 2013, 17:24

loicwood a écrit:J'essaye d'inclure le code dans un fichier tex, cela compile, mais je n'ai pas d'animation, et pas de contrôles. Comment dois-je modifier les dernières lignes ?

Le but final est d'avoir plusieurs graphiques, mais dépendant d'une seule animation.

Il faut trois compilations :
Code: Tout sélectionner
pdflatex monfichier
asy monfichier-*.asy
pdflatex monfichier

ou alors utiliser le script latexmk :
Code: Tout sélectionner
latexmk -pdf monfichier

Attention, il faut aussi supprimer les lignes suivantes (déjà pris en charge par la figure asymptote) :
Code: Tout sélectionner
\ASYanimategraphics[controls]{50}{movie1}{}{}


Christophe

EDIT : J'ai compilé avec le préambule suivant :
Code: Tout sélectionner
\documentclass{article}
\usepackage[inline]{asymptote}
%\usepackage{asymptote}
\usepackage{animate}
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar chellier » Dimanche 24 Février 2013, 18:33

J'ai repris le premier code pour le problème des valeurs non nuls au départ ( j'ai mis mes modifications entre //----) :

Code: Tout sélectionner
import math;
import graph;
import animate;

settings.tex="pdflatex";
settings.outformat="pdf";

animation A;

int n=10;

unitsize(1cm,10cm);

//real xmin=0, xmax=12, ymin=0, ymax=1

real[] s={0,0,0,0,0,0,0,0,0,0,0,0,0};
real[] t={0,0,0,0,0,0,0,0,0,0,0,0,0};

srand((int)time("%H%M%S"));
//------------------------------------------------------------
int i=0;

xaxis("sommes", xmin=0,xmax=13,Ticks(Step=1),Arrow);
yaxis("fr\'equences", ymin=0, ymax=0.3,Ticks(Step=0.1),Arrow);

//------------------------------------------------------------
label(format("simulation n$^{\circ}$ :\quad %i",i),(10,0.3));
//label(format(" %i",i),(11.7,0.3));
//------------------------------------------------------------
for(int j=2;j<=12;++j){
draw((j+0.1,0)--(j+0.1,s[j]),blue+2bp);
draw((j-0.1,0)--(j-0.1,t[j]),red+2bp);

}
A.add();
erase();

//------------------------------------------------------------
for (int i=1; i<=n;++i){
save();
int de1=floor(unitrand()*6+1), de2=floor(unitrand()*6+1), de3=floor(unitrand()*6+1), de4=floor(unitrand()*6+1);

int som_de=de1+de2, som_de2=de3+de4;

s[som_de]=s[som_de]+1/n;
t[som_de2]=t[som_de2]+1/n;

xaxis("sommes", xmin=0,xmax=13,Ticks(Step=1),Arrow);
yaxis("fr\'equences", ymin=0, ymax=0.3,Ticks(Step=0.1),Arrow);

//------------------------------------------------------------
label(format("simulation n$^{\circ}$ :\quad %i",i),(10,0.3));
//label(format(" %i",i),(11.7,0.3));
//------------------------------------------------------------
for(int j=2;j<=12;++j){
draw((j+0.1,0)--(j+0.1,s[j]),blue+2bp);
draw((j-0.1,0)--(j-0.1,t[j]),red+2bp);

}

A.add();
restore();
}
//erase();
//A.movie(delay=50);
label(A.pdf(BBox(1mm,nullpen),delay=50,"controls"));
//A.glmovie();


Christophe
chellier
Modérateur
 
Messages: 355
Inscription: Samedi 25 Juillet 2009, 11:25
Localisation: Le Creusot
Statut actuel: Actif et salarié | Enseignant

Re: Plusieurs questions sur l'animation

Messagepar loicwood » Dimanche 24 Février 2013, 21:43

Merci pour la modification du code.

J'arrive maintenant à avoir deux graphiques (une anim A et une anim B), est-il possible d'avoir une seule barre de contrôle pour lancer les deux animations en même temps ?
loicwood
Kilo-utilisateur
 
Messages: 118
Inscription: Dimanche 23 Octobre 2011, 10:24
Localisation: Souppes sur Loing
Statut actuel: Actif et salarié | Enseignant


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité