« Mathc gnuplot/Commande pause 1 » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 7 :
 
* Créer une animation avec la commande "pause 1" de gnuplot.
* Ces exemples dans cette page présentent le code sans animation.
* Pour le troisième exemple voir le chapitre [[Mathc gnuplot/Animation : Tangente| Animation Tangente]]
* Autre exemple, voir le chapitre [[Mathc gnuplot/Animation : Tangente d'une courbe| Tangente d'une courbe]]
Ligne 12 ⟶ 13 :
= Présentation =
 
* Un exemple à tester (n'oubliez pas les fichiers *.h)
* '''N'oubliez pas les fichiers *.h partagés et ceux de ce chapitre.'''
 
 
=== Le cadre ===
Ligne 27 ⟶ 30 :
int main(void)
{
Pic_Ctrlt_Ctrl Pic = {0,5,1};
 
G_TanA(Pic);
Ligne 54 ⟶ 57 :
.
reset
 
 
=== Dessiner ===
Ligne 61 ⟶ 65 :
<source lang="c">
/* ------------------------------------ */
/* Save as : c01c02.c */
/* ------------------------------------ */
#include "x_ahfile.h"
Ligne 72 ⟶ 76 :
 
G_TanA(i_WGnuplot(-7, 7,-2,2),
i_Pici_time(0,5,1),
feq);
 
Ligne 104 ⟶ 108 :
reset
 
== Les fichiers h partagésde ce chapitre ==
 
=== Appel des fichiers standards ===
Ligne 119 ⟶ 123 :
#include <string.h>
/* ------------------------------------ */
#include "xa_strctxplt.h"
</source>
 
=== Les defines ===
 
<source lang="c">
/* ------------------------------------ */
/* Save as : xa_def.h */
/* ------------------------------------ */
#ifndef PI
#define PI 3.14159265359
#endif
/* ------------------------------------ */
void clrscrn(void)
{
printf("\n\n\n\n\n\n\n\n\n\n\n"
"\n\n\n\n\n\n\n\n\n\n\n"
"\n\n\n\n\n\n\n\n\n\n\n");
}
/* ------------------------------------ */
</source>
 
 
=== Déclaration et initialisation des structures ===
 
<source lang="c">
/* Save as : xa_strct.h */
/* ------------------------------------ */
typedef struct
{
double xmini;
double xmaxi;
double ymini;
double ymaxi;
 
}W_Ctrl, *PW_Ctrl;
/* ------------------------------------ */
W_Ctrl i_WGnuplot(
double xmini,
double xmaxi,
double ymini,
double ymaxi
)
{
W_Ctrl w = {xmini,xmaxi,ymini,ymaxi};
 
return (w);
}
/* ------------------------------------ */
typedef struct
{
double First;
double Last;
double Step;
 
}Pic_Ctrl, *PPic_Ctrl;
/* ------------------------------------ */
Pic_Ctrl i_Pic(
double First,
double Last,
double Step
)
{
Pic_Ctrl Pic = {First,Last,Step};
 
return (Pic);
}
</source>
 
=== La fonction à dessiner ===
Ligne 209 ⟶ 148 :
/* ------------------------------------ */
void G_TanA(
Pic_Ctrlt_Ctrl Pic
)
{
Ligne 215 ⟶ 154 :
double p;
 
fprintf(fp," set zeroaxis\n\n");
 
for(p=Pic.Firstmini; p<Pic.Lastmaxi; p+=Pic.Stepstep)
 
for(p=Pic.First; p<Pic.Last; p+=Pic.Step)
fprintf(fp," pause 1\n\n");
 
fprintf(fp," reset");
fclose(fp);
}
</source>
Ligne 232 ⟶ 172 :
/* ------------------------------------ */
void G_TanA(
W_Ctrl w,
Pic_Ctrlt_Ctrl Pic,
char fEQ[]
)
{
FILE *fp = fopen("a_main.plt","w");
double p = Pic.First;
 
fprintf(fp," set zeroaxis\n\n");
 
for(p = Pic.mini; p<Pic.Lastmaxi; p+=Pic.Stepstep)
fprintf(fp," set zeroaxis\n\n");
 
for(; p<Pic.Last; p+=Pic.Step)
fprintf(fp," plot [%0.3f:%0.3f] [%0.3f:%0.3f] "
" %s\n"
Ligne 249 ⟶ 190 :
fEQ);
 
fprintf(fp," reset");
fclose(fp);
}
</source>