Aller au contenu

Mathc gnuplot/Vectorielle : Quelques exemples 2

Un livre de Wikilivres.
Mathc gnuplot
Mathc gnuplot
Mathc gnuplot
Sommaire

I - Dessiner

Fichiers h partagés :

Application :

II - Animer

Application :

III - Géométrie de la tortue standard

Application :

IV - Géométrie de la tortue vectorielle

Application :

Annexe


La géométrie de la tortue dans Wikipedia.

  • Quelques exemples .

N'oubliez pas les fichiers h de la librairie.


c01.c
Petits jeux sur les polygones
/* ------------------------------------ */
/* save as : c01.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_r.h"
/* ------------------------------------ */   
void poly(
double **U, 
double **Sides,
double **Angles,
double alpha,
int    n
)
{
int i=1;
int c;

   for(;i++<n;)
   
      for(c=C1;c<Angles[C_SIZE][OF];c++)
     
        vo(U,i*(Angles[R1][c])+alpha,Sides[R1][c]);      
}
/* ------------------------------------ */   
int main(void)
{  
double a[2]   ={ 19.,-20.};
double s[2]   ={ 60., 60.};
double alpha  =-90;

double **U = G_main(-1000.,1000.,-1000.,1000.);
double **A = c_a_A_mR(a,I_mR(R1,C2));
double **S = c_a_A_mR(s,I_mR(R1,C2));

   setup(U,-500,450.);   
   poly(U,S,A,alpha,50);

   setup(U, 500,450.);   
   poly(U,S,A,alpha,100);

   setup(U, -500,-600.);   
   poly(U,S,A,alpha,200);   

   setup(U,500,-600.);   
   poly(U,S,A,alpha,400);   

   F_mR(U);

  return 0;
}
Résultat dans gnuplot
Turtlev01


N'oubliez pas les fichiers h de la librairie.


c02.c
Une étoiles
/* ------------------------------------ */
/* save as : c02.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_r.h"
/* ------------------------------------ */   
void poly(
double **U, 
double **Sides,
double **Angles,
double alpha,
int    n
)
{
int i=1;
int c;

   for(;i++<n;)
   
      for(c=C1;c<Angles[C_SIZE][OF];c++)
     
        vo(U,i*(Angles[R1][c])+alpha,Sides[R1][c]);      
}
/* ------------------------------------ */   
int main(void)
{
double a[4]   ={ 7.,  -8.,  9., -10.};
double s[4]   ={ 30., 30., 30.,  30.};

double **U = G_main(-1000.,1000.,-1000.,1000.);      
double **A = c_a_A_mR(a,I_mR(R1,C4));
double **S = c_a_A_mR(s,I_mR(R1,C4));

   setup(U, 200,-100.); 
   poly(U,S,A,-0.,400.);   

   F_mR(U);

  return 0;
}
Résultat dans gnuplot
Turtlev02


N'oubliez pas les fichiers h de la librairie.

c03.c
Petit jeux sur les polygones
/* ------------------------------------ */
/* save as : c03.c                      */
/* ------------------------------------ */  
#include "v_a.h"
#include "y_r.h"
/* ------------------------------------ */   
void poly(
double **U, 
double **Sides,
double **Angles,
double alpha,
double n
)
{
int i;
int c;

   for(i=1;i<n;++i)
      for(c=FIRST; c<Angles[C_SIZE][OF]; c++)
        vo(U,i*(Angles[FIRST][c])+alpha,Sides[FIRST][c]);      
}
/* ------------------------------------ */   
int main(void)
{
double alpha  =-90;

double a[3]   ={ -12., 13.,-12.};
double s[3]   ={  10., 20., 30.};

double **U = G_main(-1000.,1000.,-1000.,1000.);
double **A = c_a_A_mR(a,I_mR(R1,C3));
double **S = c_a_A_mR(s,I_mR(R1,C3));
 
   setup(U,-500,450.);   
   poly(U,S,A,alpha,50);

   setup(U, 500,450.);   
   poly(U,S,A,alpha,100);

   setup(U, -500,-600.);   
   poly(U,S,A,alpha,200);   

   setup(U,  500,-600.);   
   poly(U,S,A,alpha,400);   

   F_mR(U);

  return 0;
}
Résultat dans gnuplot
Turtlev03