Mathc gnuplot/Version imprimable
Une version à jour et éditable de ce livre est disponible sur Wikilivres,
une bibliothèque de livres pédagogiques, à l'URL :
https://fr.wikibooks.org/wiki/Mathc_gnuplot
Introduction
L'étude de ce chapitre peut ce faire à l'aide de cette [Playlist]..
Les notions de mathématiques sont supposées connues.
En pratique
[modifier | modifier le wikicode]Pour le langage C :
Sous linux il faut ajouter la commande -lm dans la ligne de commande pour lier la librairie mathématique à votre code.
Dans Geany il faut aller dans le menu construire/définir les commandes de construction ensuite ajouter la commande -lm
- compile : gcc -Wall -c "%f" -lm
- build ..... : gcc -Wall -o "%e" "%f" -lm
- Copier la bibliothèque, les fichiers h, dans votre répertoire de travail.
- Chaque fichier "*.c" est un exemple à compiler et à exécuter.
Pour gnuplot :
- Linux :
- Exécuter un exemple C.
- Ajouter une nouvelle fenêtre dans votre terminal de travail.
- Vous serez automatiquement dans le bon répertoire pour lancer gnuplot.
- Tapez : gnuplot
- Windows :
- Pour sélectionner le bon répertoire sous Windows
- Choisissez l'icône ChDir (change directory)
- Puis l'icône Open pour sélectionner un fichier de commande de gnuplot.
- Animation :
- Tapotez sur l'icône replot de gnuplot.
Présentation de la librairie
Préambule
[modifier | modifier le wikicode]La géométrie de la tortue dans Wikipedia.
Dans ce chapitre, nous présenterons un exemple (c01.c) et la librairie (*.h). Le code des fonctions de la librairie ne sont pas à étudier. Dans un premier temps, amusez-vous simplement avec ces fonctions.
L'étude de ce chapitre peut ce faire à l'aide de cette [Playlist]..
Présentation
[modifier | modifier le wikicode]- Les commandes d'initialisation :
- **U = GINIT(-10.,10.,-10.,10.);
- création de la matrice.
- initialisation de la fenêtre de gnuplot
- F_mR(U); Destruction de la matrice.
- **U = GINIT(-10.,10.,-10.,10.);
- Les commandes de déplacement :
- SETUP(U,angle,x,y); Positionner la tortue.
- GO(U,+P); Avancer de P pas.
- GO(U,-P); Reculer de P pas.
- TU(U,+D); Tourner de D degrés sur la droite.
- TU(U,-D); Tourner de D degrés sur la gauche.
- La direction:
- Les angles positifs tournent dans le sens des aiguilles d'une montre.
- L'angle 0 est le nord.
- La direction est mémorisée.
- Les angles positifs tournent dans le sens des aiguilles d'une montre.
Dessiner
[modifier | modifier le wikicode]![]() |
c01.c Dessiner un carré |
---|
/* ------------------------------------ */
/* Save as : c01.c */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-10.,10.,-10.,10.);
int i = 4;
clrscrn();
for(;i--;)
{GO(U,5.);TU(U,90.);}
F_mR(U);
printf(" * open the file main.plt with Gnuplot.\n\n\n");
getchar();
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Le résultat :
# Gnuplot file : load "a_main.plt"
set zeroaxis
set size ratio -1
plot [-10.000:10.000] [-10.000:10.000] \
"data.plt" with linesp pt 0
Résultat dans gnuplot |
---|
![]() |
Les fichiers h partagés
[modifier | modifier le wikicode]![]() |
v_a.h Appel des fichiers |
---|
/* ------------------------------------ */
/* Save as : v_a.h */
/* ------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <ctype.h>
#include <time.h>
#include <math.h>
/* ------------------------------------ */
#include "vdefine.h"
#include "vmatini.h"
#include "vmatbas.h"
#include "vmatcop.h"
#include "vmatrot.h"
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vdefine.h Déclaration des defines |
---|
/* ------------------------------------ */
/* Save as : vdefine.h */
/* ------------------------------------ */
#define C0 0
#define C1 1
#define C2 2
#define C3 3
#define C4 4
#define C5 5
#define R0 0
#define R1 1
#define R2 2
#define R3 3
#define R4 4
#define R5 5
#define OF 0
#define R_SIZE 0
#define C_SIZE 1
#define C_SIZE_A 2
#define FIRST 1
#ifndef PI
#define PI 3.14159265359
#endif
#define MAX(A,B) ((A)>(B) ? (A):(B) )
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");
}
/* ------------------------------------ */
/* ------------------------------------ */
L'étude sur les matrices fait partie d'un autre livre.
![]() |
vmatini.h Création et destruction d'une matrice |
---|
/* ------------------------------------ */
/* Save as : vmatini.h */
/* -------------------------------------*/
double **I_mR(
int r,
int c
)
{
int i = R0;
int ar = r + C1;
int ac = c + C1;
double **A = malloc(ar * sizeof(*A));
for(; i<ar; i++)
A[i] = malloc(ac * sizeof(**A));
A[R_SIZE][OF] = ar;
A[C_SIZE][OF] = ac;
return(A);
}
/* ------------------------------------ */
void F_mR(
double **A
)
{
int i=R0;
int r=A[R_SIZE][OF];
if(A) for(;i<r;i++) free(A[i]);
free(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vmatbas.h Additionner et multiplier des matrices |
---|
/* ------------------------------------ */
/* Save as : vmatbas.h */
/* ------------------------------------ */
double **add_mR(
double **A,
double **B,
double **AplsB
)
{
int r;
int c;
for (r=FIRST;r<A[R_SIZE][OF];r++)
for(c=FIRST;c<A[C_SIZE][OF];c++)
AplsB[r][c]=A[r][c]+B[r][c];
return(AplsB);
}
/* ------------------------------------ */
double **mul_mR(
double **A,
double **B,
double **AB
)
{
int i,j,k;
for (k=FIRST; k<A[R_SIZE][OF];k++)
for (j=FIRST; j<B[C_SIZE][OF];j++)
for(i=FIRST,AB[k][j]=0;i<A[C_SIZE][OF];i++)
AB[k][j]+=A[k][i]*B[i][j];
return(AB);
}
![]() |
vmatcop.h Copier une matrice |
---|
/* ------------------------------------ */
/* Save as : vmatcop.h */
/* ------------------------------------ */
double ** c_mR(
double **A,
double **B
)
{
int r;
int c;
for( r=FIRST;r<A[R_SIZE][OF];r++)
for(c=FIRST;c<A[C_SIZE][OF];c++)
B[r][c]=A[r][c];
return(B);
}
/* ------------------------------------ */
double **c_a_A_mR(
double a[],
double **A
)
{
int r;
int c;
int i=0;
for( r=FIRST; r<A[R_SIZE][OF]; r++)
for(c=FIRST; c<A[C_SIZE][OF]; c++)
A[r][c] = a[i++];
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vmatrot.h Matrice de rotation |
---|
/* ------------------------------------ */
/* Save as : vmatrot.h */
/* ------------------------------------ */
double **rot2D_mR(
double **A,
double alpha
)
{
A[1][1]=cos(alpha);A[1][2]=-sin(alpha);
A[2][1]=sin(alpha);A[2][2]= cos(alpha);
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
y_o.h La librairie de géométrie de la tortue standard |
---|
/* ------------------------------------ */
/* Save as : y_o.h */
/* ------------------------------------ */
void PD(
double **A
)
{
FILE * fp = fopen("data.plt","a");
fprintf(fp," %+.3f %+.3f \n",
A[R1][C1],A[R2][C1]);
fclose(fp);
}
/* ------------------------------------ */
void PU(
double **A
)
{
FILE *fp = fopen("data.plt","a");
fprintf(fp,"\n %+.3f %+.3f \n",
A[R1][C1],A[R2][C1]);
fclose(fp);
}
/* ------------------------------------ */
double **Ginit(
double **U,
double xmin,
double xmax,
double ymin,
double ymax
)
{
FILE *fp;
fp = fopen("a_main.plt","w");
fprintf(fp,"# Gnuplot file : load \"a_main.plt\" \n"
"reset\n"
"set zeroaxis\n"
"set size ratio -1\n"
"plot [%0.3f:%0.3f] [%0.3f:%0.3f] \\\n"
"\"data.plt\" with linesp pt 0\n"
,xmin,xmax,ymin,ymax);
fclose(fp);
fp = fopen("data.plt","w");
fclose(fp);
U[R0][C1] = 0.;/* angle */
U[R1][C1] = 0.;/* x */
U[R2][C1] = 0.;/* y */
PD(U);
return(U);
}
/* ------------------------------------ */
double **GINIT(
double xmin,
double xmax,
double ymin,
double ymax
)
{
return( Ginit(I_mR(R2,C1),xmin,xmax,ymin,ymax) );
}
/* ------------------------------------ */
void SET(
double **U,
double angle,
double x,
double y
)
{
U[R0][C1] = angle;
U[R1][C1] = x;
U[R2][C1] = y;
PD(U);
}
/* ------------------------------------ */
void SETUP(
double **U,
double angle,
double x,
double y
)
{
U[R0][C1] = angle;
U[R1][C1] = x;
U[R2][C1] = y;
PU(U);
}
/* ------------------------------------ */
void GO(
double **U,
double Step
)
{
double **T = I_mR(R2,C2);
double **B = I_mR(R2,C1);
double **C = I_mR(R2,C1);
double angle=U[R0][C1];
B[R1][C1] = 0.;
B[R2][C1] = Step;
rot2D_mR(T,PI/180.*(-angle));
mul_mR(T,B,C);
c_mR(U,B);
add_mR(B,C,U);
PD(U);
F_mR(C);
F_mR(B);
F_mR(T);
}
/* ------------------------------------ */
void GU(
double **U,
double Step
)
{
double **T = I_mR(R2,C2);
double **B = I_mR(R2,C1);
double **C = I_mR(R2,C1);
double angle=U[R0][C1];
B[R1][C1] = 0.;
B[R2][C1] = Step;
rot2D_mR(T,PI/180.*(-angle));
mul_mR(T,B,C);
c_mR(U,B);
add_mR(B,C,U);
PU(U);
F_mR(C);
F_mR(B);
F_mR(T);
}
/* ------------------------------------ */
void TU(
double **U,
double angle
)
{
U[R0][C1]+=angle;
}
/* ------------------------------------ */
/* ------------------------------------ */
Conclusion
Quelques applications :
[modifier le wikicode]
Présentation de la librairie vectorielle
Préambule
[modifier | modifier le wikicode]La géométrie de la tortue dans Wikipedia.
Dans ce chapitre, nous présenterons un exemple (c01.c) et la librairie (*.h). Les fonctions de la librairie ne sont pas à étudier. Dans un premier temps, amusez-vous simplement avec ces fonctions.
L'étude de ce chapitre peut ce faire à l'aide de cette [Playlist]..
Présentation
[modifier | modifier le wikicode]Les commandes d'initialisation :
- **U = G_main(-10.,10.,-10.,10.);
- création de la matrice.
- Initialisation de la fenêtre de gnuplot
- F_mR(U); Destruction de la matrice.
Les commandes de déplacement :
- SETUP(U,angle,x,y); Positionner la tortue.
- vo(U,0,+P); Avancer de P unités.
- vo(U,0,-P); Reculer de P unités.
- vo(U,D,0); Contrôler la "D"irection.
La direction :
- Suit les règles du cercle trigonométrique mais en degrés. Les angles positifs sont mesurés dans le sens inverse des aiguilles d'une montre, à partir de l'axe des x positifs.
- À chaque déplacement il faut lui indiquer une direction.
Dessiner
[modifier | modifier le wikicode]Dessiner un carré.
![]() |
c01.c Dessiner un carré. |
---|
/* ------------------------------------ */
/* Save as : c01.c */
/* ------------------------------------ */
#include "v_a.h"
#include "y_r.h"
/* ------------------------------------ */
int main(void)
{
double **U = G_main(-10.,10.,-10.,10.);
double angle = 0.;
double side = 5.;
for(;angle<360;angle+=90)
vo(U,angle,side);
F_mR(U);
printf(" * open the file a_main.plt with Gnuplot.\n\n\n");
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Le résultat :
# Gnuplot file : load "a_main.plt"
set zeroaxis
set size ratio -1
plot [-10.000:10.000] [-10.000:10.000] \
"data.plt" with linesp pt 0
Résultat dans gnuplot |
---|
![]() |
Les fichiers h partagés
[modifier | modifier le wikicode]![]() |
v_a.h Appel des fichiers |
---|
/* ------------------------------------ */
/* Save as : v_a.h */
/* ------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <ctype.h>
#include <time.h>
#include <math.h>
/* ------------------------------------ */
#include "vdefine.h"
#include "vmatini.h"
#include "vmatbas.h"
#include "vmatcop.h"
#include "vmatrot.h"
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vdefine.h Déclaration des defines |
---|
/* ------------------------------------ */
/* Save as : vdefine.h */
/* ------------------------------------ */
#define C0 0
#define C1 1
#define C2 2
#define C3 3
#define C4 4
#define C5 5
#define R0 0
#define R1 1
#define R2 2
#define R3 3
#define R4 4
#define R5 5
#define OF 0
#define R_SIZE 0
#define C_SIZE 1
#define C_SIZE_A 2
#define FIRST 1
#ifndef PI
#define PI 3.14159265359
#endif
#define MAX(A,B) ((A)>(B) ? (A):(B) )
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");
}
/* ------------------------------------ */
/* ------------------------------------ */
L'étude sur les matrices fait partie d'un autre livre.
![]() |
vmatini.h Création et destruction d'une matrice |
---|
/* ------------------------------------ */
/* Save as : vmatini.h */
/* -------------------------------------*/
double **I_mR(
int r,
int c
)
{
int i = R0;
int ar = r + C1;
int ac = c + C1;
double **A = malloc(ar * sizeof(*A));
for(; i<ar; i++)
A[i] = malloc(ac * sizeof(**A));
A[R_SIZE][OF] = ar;
A[C_SIZE][OF] = ac;
return(A);
}
/* ------------------------------------ */
void F_mR(
double **A
)
{
int i=R0;
int r=A[R_SIZE][OF];
if(A) for(;i<r;i++) free(A[i]);
free(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vmatbas.h Additionner et multiplier des matrices |
---|
/* ------------------------------------ */
/* Save as : vmatbas.h */
/* ------------------------------------ */
double **add_mR(
double **A,
double **B,
double **AplsB
)
{
int r;
int c;
for (r=FIRST;r<A[R_SIZE][OF];r++)
for(c=FIRST;c<A[C_SIZE][OF];c++)
AplsB[r][c]=A[r][c]+B[r][c];
return(AplsB);
}
/* ------------------------------------ */
double **mul_mR(
double **A,
double **B,
double **AB
)
{
int i,j,k;
for (k=FIRST; k<A[R_SIZE][OF];k++)
for (j=FIRST; j<B[C_SIZE][OF];j++)
for(i=FIRST,AB[k][j]=0;i<A[C_SIZE][OF];i++)
AB[k][j]+=A[k][i]*B[i][j];
return(AB);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vmatcop.h Copier une matrice |
---|
/* ------------------------------------ */
/* Save as : vmatcop.h */
/* ------------------------------------ */
double ** c_mR(
double **A,
double **B
)
{
int r;
int c;
for( r=FIRST;r<A[R_SIZE][OF];r++)
for(c=FIRST;c<A[C_SIZE][OF];c++)
B[r][c]=A[r][c];
return(B);
}
/* ------------------------------------ */
double **c_a_A_mR(
double a[],
double **A
)
{
int r;
int c;
int i=0;
for( r=FIRST; r<A[R_SIZE][OF]; r++)
for(c=FIRST; c<A[C_SIZE][OF]; c++)
A[r][c] = a[i++];
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
vmatrot.h Matrice de rotation |
---|
/* Save as : vmatrot.h */
/* ------------------------------------ */
double **rot2D_mR(
double **A,
double alpha
)
{
A[1][1]=cos(alpha);A[1][2]=-sin(alpha);
A[2][1]=sin(alpha);A[2][2]= cos(alpha);
return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
![]() |
y_r.h La librairie de géométrie de la tortue vectorielle |
---|
/* ------------------------------------ */
/* Save as : y_r.h */
/* ------------------------------------ */
void pd(
double **A
)
{
FILE *fp = fopen("data.plt","a");
fprintf(fp," %+.3f %+.3f\n",A[R1][C1],A[R2][C1]);
fclose(fp);
}
/* ------------------------------------ */
void pu(
double **A
)
{
FILE *fp = fopen("data.plt","a");
fprintf(fp,"\n %+.3f %+.3f\n",A[R1][C1],A[R2][C1]);
fclose(fp);
}
/* ------------------------------------ */
double **g_main(
double **A,
double xmin,
double xmax,
double ymin,
double ymax
)
{
FILE *fp;
fp = fopen("a_main.plt","w");
fprintf(fp,"# Gnuplot file : load \"a_main.plt\" \n"
"reset\n"
"set zeroaxis\n"
"set size ratio -1\n"
"plot [%0.3f:%0.3f] [%0.3f:%0.3f] \\\n"
"\"data.plt\" with linesp pt 0\n"
,xmin,xmax,ymin,ymax);
fclose(fp);
fp = fopen("data.plt","w");
fclose(fp);
A[R1][C1] = 0.;
A[R2][C1] = 0.;
pd(A);
return(A);
}
/* ------------------------------------ */
double **G_main(
double xmin,
double xmax,
double ymin,
double ymax
)
{
return(g_main(I_mR(R2,C1),xmin,xmax,ymin,ymax));
}
/* ------------------------------------ */
void set(
double **A,
double x,
double y
)
{
A[R1][C1] = x;
A[R2][C1] = y;
pd(A);
}
/* ------------------------------------ */
void setup(
double **A,
double x,
double y
)
{
A[R1][C1] = x;
A[R2][C1] = y;
pu(A);
}
/* ------------------------------------ */
void vo(
double **A,
double alpha,
double side
)
{
double **T = I_mR(R2,C2);
double **B = I_mR(R2,C1);
double **C = I_mR(R2,C1);
B[R1][C1] = side;
B[R2][C1] = 0.;
rot2D_mR(T,PI/180.*(alpha));
mul_mR(T,B,C);
c_mR(A,B);
add_mR(B,C,A);
pd(A);
F_mR(C);
F_mR(B);
F_mR(T);
}
/* ------------------------------------ */
void vu(
double **A,
double alpha,
double side
)
{
double **T = I_mR(R2,C2);
double **B = I_mR(R2,C1);
double **C = I_mR(R2,C1);
B[R1][C1] = side;
B[R2][C1] = 0.;
rot2D_mR(T,PI/180.*(alpha));
mul_mR(T,B,C);
c_mR(A,B);
add_mR(B,C,A);
pu(A);
F_mR(C);
F_mR(B);
F_mR(T);
}
/* ------------------------------------ */
/* ------------------------------------ */
Pointeurs de fonctions
Quelques applications :
[modifier le wikicode]
Annexe : Commandes de bases (gnuplot)
Préambule
[modifier | modifier le wikicode]Dans ce chapitre, nous voyons les premières commandes pour dessiner des fonctions de la forme f(x).
En pratique
[modifier | modifier le wikicode]test
[modifier | modifier le wikicode]Cet exemple donne les informations de base.
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
#
test
reset
# ---------------------
Le passage à la ligne
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# \n -> \
#
plot cos(x),\
sin(x),\
.4,\
-.4
reset
# ---------------------
Chaine de caractères
[modifier | modifier le wikicode]linetype | lt <0..15>
[modifier | modifier le wikicode]Chaque nombre correspond à une couleur différente. (voir test)
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15>
#
plot cos(x) lt 1,\
sin(x) lt 2,\
.4 lt 3,\
-.4 lt 3
reset
# ---------------------
linewidth | lw <1.. 6>
[modifier | modifier le wikicode]Chaque nombre correspond à une épaisseur différente.
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# # linewidth | lw <1.. 6>
#
plot cos(x) lt 1 lw 1,\
sin(x) lt 2 lw 3,\
.4 lt 3 lw 4,\
-.4 lt 3 lw 6
reset
# ---------------------
Liste de points
[modifier | modifier le wikicode]plot "data"
[modifier | modifier le wikicode]Dessiner une liste de points.
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
#
plot "data"
reset
# ---------------------
Créer un fichier "data" avec ces données :
-5 25 -4 16 -3 9 -2 4 -1 1 0 0 1 1 2 4 3 9 4 16 5 25
pointtype | pt <0..15>
[modifier | modifier le wikicode]Chaque nombre correspond à un dessin différent de points. (voir test)
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# pointtype | pt <0..15>
#
plot "data" pt 10
reset
# ---------------------
pointsize | ps <1.. >
[modifier | modifier le wikicode]Chaque nombre correspond taille de points différents. (voir test)
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# pointsize | ps <1.. >
#
plot "data" pt 10 ps 3
reset
# ---------------------
with linesp
[modifier | modifier le wikicode]Les points sont réliés par des segments.
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15> (color)
# linewidth | lw <1.. 6> (size)
# pointsize | ps <1.. > (size)
#
plot "data" with linesp lt 3 lw 3 ps 3
reset
# ---------------------
pt 0
[modifier | modifier le wikicode]Sans les points.
# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15> (color)
# linewidth | lw <1.. 6> (size)
# pointsize | ps <1.. > (size)
#
plot "data" with linesp lt 3 lw 3 ps 3 pt 0
reset
# ---------------------
Commandes générales
[modifier | modifier le wikicode]set zeroaxis lt 8 lw 3
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15> (color)
# linewidth | lw <1.. 6> (size)
#
set zeroaxis lt 8 lw 3
plot sin(x),\
cos(x)
reset
# ---------------------
set grid lt 8 lw 3
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15> (color)
# linewidth | lw <1.. 6> (size)
# pointsize | ps <1.. > (size)
#
set grid lt 8 lw 3
plot sin(x),\
cos(x)
reset
# ---------------------
complet
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
# linetype | lt <0..15> (color)
# linewidth | lw <1.. 6> (size)
# pointsize | ps <1.. > (size)
#
set zeroaxis lt 8 lw 3
set grid
plot [-6.:6.] [-1.4:1.4]\
sin(x),\
cos(x)
reset
# ---------------------
Annexe : Commandes de bases 3d (gnuplot)
Préambule
[modifier | modifier le wikicode]Dans ce chapitre, nous voyons les premières commandes pour dessiner des fonctions en 3d.
En pratique
[modifier | modifier le wikicode]splot[x][y][z] (La fonction)
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
reset
splot [0:2*pi][0:2*pi][-1:1]\
cos(x)*cos(y)
# ---------------------
set hidden (Faces cachées)
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
reset
set hidden
splot [0:2*pi][0:2*pi][-1:1]\
cos(x)*cos(y)
# ---------------------
set view rot_x, rot_z, scale, scale_z (Imposer une vue)
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
reset
set hidden
set view 55.,57., 1., 1.
splot [0:2*pi][0:2*pi][-1:1]\
cos(x)*cos(y)
# ---------------------
set xlabel "X axis" (Nommer les axes)
[modifier | modifier le wikicode]# ---------------------
# save this file as : a_main.plt
# Then into gnuplot : load "a_main.plt"
#
reset
set hidden
set xlabel "X axis"
set ylabel "Y axis"
set view 55.,57., 1., 1.
splot [0:2*pi][0:2*pi][-1:1]\
cos(x)*cos(y)
# ---------------------
![]() |
Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture. |