Aller au contenu

Mathc gnuplot/Application : Quelques exemples

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.

Petits drapeaux

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.

c01.c
Petits drapeaux
/* ------------------------------------ */
/* save as : c01.c                      */
/* ------------------------------------ */
#include  "v_a.h"
#include  "y_o.h"
/* ------------------------------------ */
void shape(
double **U,
double step,
int    side
)
{
double angle=360./side;

   for(;side--;)
      {GO(U,step);TU(U,angle);}
}
/* ------------------------------------ */
void fun(
double **U,
double step
)
{
int    a=20;
int    i=360/a;

  for(;i--;)
    {
     GO(U, step);

     shape(U,1,4);
     shape(U,1,3);

     GO(U,-step);
     TU(U,  1*a);
    }
}
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-10.,10.,-10.,10.);

    fun(U,6.);
   F_mR(U);

  printf("  * open the file a_main.plt with Gnuplot.\n\n\n");

  return 0;
}
Résultat dans gnuplot
Turtles10

Petit jeux sur les rectangles

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.

c02.c
Petit jeux sur les rectangles
/* ------------------------------------ */
/* save as : c02.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
void side(
double **U,
double size
)
{
      GO(U,size);TU(U,90.);
}
/* ------------------------------------ */
void rectangle(
double **U,
double size1,
double size2
)
{
int i=2;

   for(;i--;)
      {
       side(U,size1);
       side(U,size2);
       }
}
/* ------------------------------------ */
int main(void)
{
double   i = 360.;
double   n = 16.;
double **U = GINIT(-15.,15.,-15.,15.);

   for(;(i-=n)>=0.;)
      {
       TU(U,n);rectangle(U,5.,10.);
      }

   F_mR(U);

  printf("  * open the file a_main.plt with Gnuplot.\n\n\n");
  fflush(stdout);

  return 0;
}
Résultat dans gnuplot
Turtles09

Petit jeux sur les formes

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.


c03.c
Petit jeux sur les formes
/* ------------------------------------ */
/* save as : c03.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
void shape(
double **U,
double step,
int    side
)
{
double angle=360./side;

   for(;side--;)
      {GO(U,step);TU(U,angle);}
}
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-10.,10.,-10.,10.);

   SETUP(U,30,-5,5);
   shape(U,2,3);
      GO(U,3.);

   SETUP(U, 0, 5,5);
   shape(U,2,4);
      GO(U,3.);

   SETUP(U,72.-90.,-5,-5);
   shape(U,2,5);
      GO(U,3.);

   SETUP(U,10-90, 5,-5);
   shape(U,.2,36);
      GO(U,3.);

   F_mR(U);

  printf("  * open the file a_main.plt with Gnuplot.\n\n\n");
  fflush(stdout);

  return 0;
}
Résultat dans gnuplot
Turtles11