Le modèle Animation.mod

Voir le sujet précédent Voir le sujet suivant Aller en bas

Le modèle Animation.mod

Message  P.Fradin le Sam 19 Jan - 20:50

Voici un fichier modèle qui permet de simplifier la réalisation d'animations à partir de TeXgraph, c'est le modèle Animation.mod. Celui-ci est présent dans la version TeXgraph1.92.

Lorsque l'on charge celui-ci, il charge automatiquement les macros du fichier Animation.mac qui propose un menu, ainsi que des macros à compléter par l'utilisateur. Il y a un fichier d'aide (Animation.pdf) que l'on peut ouvrir en cliquant le bouton Aide (attention cependant, xpdf ne lit pas les animations pdf) ce fichier propose deux exemples complets.

Pour réaliser l'animation, l'utilisateur doit:

- dessiner la frame initiale.
- complèter la macro Initialiser() [valeur par défaut des paramètres]
- complèter éventuellement la macro OnBeginAnim()
- complèter éventuellement la macro OnEndAnim()
- complèter la macro MakeFrame(): c'est la plus importante, c'est ici que l'utilisateur définit la frame n° %1.
- définir le nombre de frames.

On peut ensuite: jouer l'animation à l'écran, l'enregistrer sous forme de fichiers pstricks (un par frame) puis compiler toutes les frames en un fichier pdf. Ce fichier pdf peut être ensuite converti en gif animé (à partir du menu) ou en flash (à partir du menu), ou être inclus en tant que pdf animé dans un autre document pdf (voir demo: PDFAnimDemo.tex dans l'archive)

Voici l'exemple 2 de la doc exporté en flash (14ko!): Exemple2.swf

Et en gif animé:

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Ven 20 Juin - 18:54

J'essaye d'utiliser le fichier animation.mod pour faire une animation du paradoxe de bertrand.ici http://melusine.eu.org/syracuse/journal/2008/06/16/pscilab/
J'explique: on trace une corde sur le cercle trigo et on veut estimer la probabilité que la longueur de cette corde soit supérieure à sqrt(3), longueur d'un côté d'un triangle équilatéral inscrit dans le cercle.
Pour cela, on a la choix entre au moins quatre constructions qui ne donneront pas la même convergence pour les fréquences empiriques.
Je voudrais faire une animation de ces constructions et me heurte au problème suivant:
Je veux tracer aléatoirement n cordes successivement(en choisissant deux pts aléatoirement sur le cercle), et faire apparaître l'évolution de la fréquence empirique des cordes vérifiant la propriété, mais je n'y arrive pas.
Je trace le cercle et le triangle équilat
je définis n comme variable globale qui est initialisée à 1
Je trace une corde aléatoirement(dans créer ligne : exp(Rand(n)*2*pi/n), exp(Rand(n)*2*pi/n)
La corde n'apparait pas, alors que si je mets exp(Rand()*2*pi), exp(Rand()*2*pi) elle apparait mais je ne sais pas alors en créer d'autres

Pouvez-vous m'aider, je vous en remercie d'avance et espère avoir été suffisamment clair

jmd

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  P.Fradin le Ven 20 Juin - 20:27

jmd a écrit:
je définis n comme variable globale qui est initialisée à 1
Je trace une corde aléatoirement(dans créer ligne : exp(Rand(n)*2*pi/n), exp(Rand(n)*2*pi/n)
La corde n'apparait pas, alors que si je mets exp(Rand()*2*pi), exp(Rand()*2*pi) elle apparait mais je ne sais pas alors en créer d'autres

Pouvez-vous m'aider, je vous en remercie d'avance et espère avoir été suffisamment clair
jmd

Bonjour jmd,

Première remarque: il manque le complexe i:

[exp(Rand(n)*2*i*pi/n), exp(Rand(n)*2*i*pi/n)]


Par exemple, dans un élément graphique Utilisateur, le code:

Code:

[Cercle(0,4),
 for k from 1 to 20 do
      Seg(4*exp(Rand()*2*i*pi), 4*exp(Rand()*2*i*pi))
 od ] 


donnera:

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Ven 20 Juin - 22:20

merci pour l'idée(dans mon code, je mettais bien le i, je l'ai simplement oublié ici )
je vais tester et regarder comment aller plus loin, merci beaucoup pour l'aide
j-marc

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  P.Fradin le Sam 21 Juin - 0:40

Ma curiosité a été piquée, alors je me suis amusé à faire une animation:



mais pour ne pas gâcher le plaisir de ceux qui cherchent, je ne donne pas tout de suite le fichier source!


Dernière édition par P.Fradin le Jeu 26 Juin - 15:23, édité 2 fois

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Sam 21 Juin - 11:06

Superbe :-))
C'est exactement ce que je veux montrer.
Je vais m'y mettre et reviendrais sans doute souvent vers vous pour aboutir à une animation qui tienne la route.
Franchement, je suis épaté.
J'ai du boulot Crying or Very sad
Merci encore pour vous êtes penché sur le pb
j-marc Very Happy

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Sam 21 Juin - 15:12

En m'appuyant sur le modèle du lancer de dés, j'obtiens une animation qui me pose qqes pbs:
1. la deuxième méthode de construction qui consiste à fixer un point et à n'en choisir qu'un seul sur le cercle pour définir la corde ne donne pas une fréquence empirique qui converge vers 1/3, j'ai dû me tromper dans la programmation
2. Je doute fortement des troisième et quatrième simulations de cordes

Voici le source, qu'en pensez-vous?(je vous confie lâchement le bébé Question

% TeXgraph version 1.92
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-2#8#-0.35#0.55#1.5#7.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#7##
% Affectation des Variables theta et phi
18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##
18##InputMac("Animation.mac")##
% Déclaration des Variables Globales
15#N#1000##
15#cpt1#325##
15#cpt2#235##
15#cpt3#214##
15#cpt4#109##
% Déclaration des Macros
16#MakeFrame#[{code pour dessiner la frame n° %1}
N:=%1-1,

long1:=abs(exp(2*i*pi*Rand())-exp(2*i*pi*Rand())),
long2:=abs(1-exp(2*i*pi*Rand())),
long3:=2*sqrt(1-(Rand())^2),
long4:=2*sqrt(1-(abs(Rand()*exp(2*i*pi*Rand()))^2)),
if %1>1 then
Si(long1>sqrt(3), Inc(cpt1,1),
long2>sqrt(3), Inc(cpt2,1),
long3>sqrt(3), Inc(cpt3,1),
long4>sqrt(3), Inc(cpt4,1),

) fi,
ReCalc(frequence)

]

{if %1>1 then
if long1>sqrt(3) then Inc(cpt1,1) fi,
if long2>sqrt(3) then Inc(cpt2,1) fi,
if long3>sqrt(3) then Inc(cpt3,1) fi,
if long4>sqrt(3) then Inc(cpt4,1) fi,
if nbralea=5 then Inc(cpt5,1) fi,
if nbralea=6 then Inc(cpt6,1) fi,
fi,}
##
16#OnBeginAnim#[{exécutée au lancement de l'animation}

]##
16#OnEndAnim#[{exécutée à la fin de l'animation}

]##
16#Initialiser#[{valeurs par défaut de vos paramètres}
cpt1:=0, cpt2:=0,
cpt3:=0, cpt4:=0,
cpt5:=0, cpt6:=0,
N:=0, ReCalc()

]
##
16#Tempo#10##
16#NbFrames#1001##
16#Nom#"c:\tmp\lancer"##
% Déclaration des Eléments graphiques
% frequence (Utilisateur)
18##[Color:=8388736,FillStyle:=4,tMin:=-5,tMax:=5]##
14#frequence#[
Set(Color, gray), Set(FillColor, gray),
Drectangle(0,1,1+cpt1/N*i),
Set(Color, black), Set(FillColor, black),
Drectangle(1,2,2+cpt2/N*i),
Set(Color, cyan), Set(FillColor, cyan),
Drectangle(2,3,3+cpt3/N*i),
Set(Color, blue), Set(FillColor, blue),
Drectangle(3,4,4+cpt4/N*i),





Set(Color, black),
Label(-0.5-.15*i, [" nombre de cordes Methode 1 : ",cpt1,"; "]),
Label(-0.5-.2*i, [" nombre de cordes Methode 2 : ",cpt2,"; "]),
Label(3-.15*i, [" nombre de cordes Methode 3 : ",cpt3,"; "]),
Label(3-.2*i, [" nombre de cordes Methode 4 : ",cpt4,"; "]),


Label(3-0.3*i, [" nombre de cordes: ",N,". "])

]

#-1##
% axes (Utilisateur)
18##[Width:=8,Color:=0,FillStyle:=0]##
14#axes#[
for k from 0 to 4 do Seg(k-0.02*i, k+0.02*i) od,
for k from 1 to 4 do Label(k-0.5-0.07*i, [" ",k," "]) od,
for k from 0 to 0.5 step 0.1 do Seg(-0.1+k*i, 0.1+k*i) od,
Label(-0.5, ["0"], -0.5+0.1*i, ["0,1"],
-0.5+0.2*i, ["0,2"], -0.5+0.3*i, ["0,3"],
-0.5+0.4*i, ["0,4"], -0.5+0.5*i, ["0,5"]),
Seg(0,4), Seg(0,0.5*i),

]
#-1##

Merci beaucoup pour votre aide , j-marc

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  P.Fradin le Sam 21 Juin - 15:42

Dans ta macro MakeFrame il y a:

Code:

long3:=2*sqrt(1-(Rand())^2),
long4:=2*sqrt(1-(abs(Rand()*exp(2*i*pi*Rand()))^2)),

ce qui ne fait aucune différence entre la méthode 3 et la méthode 4!

D'autre part:

Code:

Si(long1>sqrt(3), Inc(cpt1,1),
long2>sqrt(3), Inc(cpt2,1),
long3>sqrt(3), Inc(cpt3,1),
long4>sqrt(3), Inc(cpt4,1),)

ne fait pas le bon calcul, car le deuxième test n'a lieu que si le premier est négatif ...etc, il faut les 4 tests indépendants:

Code:

if long1>sqrt(3) then Inc(cpt1,1) fi,
if long2>sqrt(3) then Inc(cpt2,1) fi,
if long3>sqrt(3) then Inc(cpt3,1) fi,
if long4>sqrt(3) then Inc(cpt4,1) fi,

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Sam 21 Juin - 16:42

Découvrant la syntaxe, je merdouille pas mal Sad
Voici une nouvelle mouture qui me pose pb pour la quatrième méthode car je coince pour simuler un point dans le cercle, la fréquence que je calcule est inférieure à celle que je dois obtenir mais je n'arrive pas à réaliser le programme qu'avec scilab, ne maîtrisant pas les commandes logiques.
Voici le source :
Merci pour l'aide:-)

% TeXgraph version 1.92

% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale

100#-2#8#-0.35#0.55#1.5#7.5##

% Marges gauche droite haut bas cadre gestion_couleur comptgraph

101#0#0#0#0#0#1#8##

% Affectation des Variables theta et phi

18##[theta:=0.5236, phi:=1.0472, OriginalCoord(1)]##

18##InputMac("Animation.mac")##

% Déclaration des Variables Globales

15#N#1500##

15#cpt1#515##

15#cpt2#507##

15#cpt3#728##

15#cpt4#299##

% Déclaration des Macros

16#MakeFrame#[{code pour dessiner la frame n° %1}
N:=%1-1,
long1:=abs(exp(i*2*pi*Rand())-exp(i*2*pi*Rand())),
long2:=abs(exp(i*pi*2*Rand())-1),
long3:=2*sqrt(1-(Rand()^2)),
x:=2*Rand()-1,
y:=2*Rand()-1,
c:=0,
long4:=2*sqrt(1-(x^2+y^2)),
if %1>1 then
Si(long1>sqrt(3), Inc(cpt1,1)),
Si(long2>sqrt(3), Inc(cpt2,1)),
Si(long3>sqrt(3), Inc(cpt3,1)),
Si(x^2+y^2<=1 And long4>sqrt(3), c:=c+1 And Inc(cpt4,1)),

fi,
ReCalc(frequence)

]

{if %1>1 then
if long1>sqrt(3) then Inc(cpt1,1) fi,
if long2>sqrt(3) then Inc(cpt2,1) fi,
if long3>sqrt(3) then Inc(cpt3,1) fi,
if long4>sqrt(3) then Inc(cpt4,1) fi,


fi,}
##

16#OnBeginAnim#[{exécutée au lancement de l'animation}

]##

16#OnEndAnim#[{exécutée à la fin de l'animation}

]##

16#Initialiser#[{valeurs par défaut de vos paramÚtres}
cpt1:=0, cpt2:=0,
cpt3:=0, cpt4:=0,
cpt5:=0, cpt6:=0,
N:=0, ReCalc()

]
##

16#Tempo#10##

16#NbFrames#1001##

16#Nom#"c:\tmp\lancer"##

% Déclaration des Eléments graphiques

% frequence (Utilisateur)

18##[Color:=8388736,FillStyle:=4,tMin:=-5,tMax:=5]##

14#frequence#[
Set(Color, blue), Set(FillColor, blue),
Drectangle(0,1,1+cpt1/N*i),
Set(Color, red), Set(FillColor, red),
Drectangle(1,2,2+cpt2/N*i),
Set(Color, cyan), Set(FillColor, cyan),
Drectangle(2,3,3+cpt3/N*i),
Set(Color, green), Set(FillColor, green),
Drectangle(3,4,4+cpt4/N*i),


Set(Color, black),
Label(-0.5-.15*i, [" nombre de cordes avec la méthode 1 : ",cpt1,"; "]),
Label(-0.5-.2*i, [" nombre de cordes avec la méthode 2 : ",cpt2,"; "]),
Label(3-.15*i, [" nombre de cordes avec la méthode 3 : ",cpt3,"; "]),
Label(3-.2*i, [" nombre de cordes avec la méthode 4 : ",cpt4,"; "]),


Label(3-0.3*i, [" nombre de cordes simulées : ",N,". "])

]

#-1##

% axes (Utilisateur)

18##[Width:=8,Color:=0,FillStyle:=0]##

14#axes#[
for k from 0 to 4 do Seg(k-0.02*i, k+0.02*i) od,
for k from 1 to 4 do Label(k-0.5-0.07*i, [" ", k," "]) od,
for k from 0 to 0.5 step 0.1 do Seg(-0.1+k*i, 0.1+k*i) od,
Label(-0.5, ["0"], -0.5+0.1*i, ["0,1"],
-0.5+0.2*i, ["0,2"], -0.5+0.3*i, ["0,3"],
-0.5+0.4*i, ["0,4"], -0.5+0.5*i, ["0,5"]),
Seg(0,4), Seg(0,0.5*i),

]
#-1##


j-marc

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  P.Fradin le Sam 21 Juin - 16:51

Pour la macro MakeFrame:

Code:

[{code pour dessiner la frame numero %1}
N:=%1-1,

long1:=abs(exp(2*i*pi*Rand())-exp(2*i*pi*Rand())),
long2:=abs(1-exp(2*i*pi*Rand())),
long3:=2*sqrt(1-(Rand())^2),
Loop( [x:=2*Rand()-1, y:=2*Rand()-1, d:=abs(x+i*y)], d<1),
long4:=2*sqrt(1-d^2),
if %1>1 then
if long1>sqrt(3) then Inc(cpt1,1) fi,
if long2>sqrt(3) then Inc(cpt2,1) fi,
if long3>sqrt(3) then Inc(cpt3,1) fi,
if long4>sqrt(3) then Inc(cpt4,1) fi,
fi,
ReCalc(frequence)]

Remarque: nous n'avons pas les méthodes dans le même ordre. Ta méthode 1 est la 2 chez moi, ta méthode 2 est la 1, ta méthode 3 est la 4 et ta méthode 4 et la 3 chez moi.

PS1: pour éditer du code dans tes messages, utilises les balises code (tu as un bouton au-dessus de la zone d'édition).

PS2: tu peux mettre à jour ta version de TeXgraph en passant à 1.93, mais cela est sans rapport avec ton animation.


Dernière édition par P.Fradin le Sam 21 Juin - 17:01, édité 2 fois

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  jmd le Sam 21 Juin - 16:59

je me rends compte que j'ai inversé effectivement les méthodes deux à deux ;-)
Merci pou la syntaxe, je n'aurais pas trouvé rapidement, je vais maintenant regardé comment afficher les cercles et les graphiques correspondants.
Merci encore
j-marc duquesnoy

jmd

Nombre de messages : 6
Age : 53
Date d'inscription : 20/06/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  P.Fradin le Jeu 26 Juin - 11:17

Je remonte le sujet,

Peut-être qu'en cette période d'examens jean-marc est pris par ailleurs. Alors je poste le fichier source de l'animation que j'ai postée plus haut: bertrandParadox.teg

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Le modèle Animation.mod

Message  Contenu sponsorisé Aujourd'hui à 6:02


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum