Aller au contenu

Mathc gnuplot/Application : Dessiner en pointillés

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 en pointillés.

  • Les commandes :
    • GO(U,+P); Avancer de P pas.
    • GO(U,-P); Reculer de P pas.
    • GU(U,+P); Avancer de P pas sans laisser de trace.
    • GU(U,-P); Reculer de P pas sans laisser de trace.

Premier exemple

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.

c01.c
Premier exemple
/* ------------------------------------ */
/* save as : c01.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
void circle(
double **U,
double r,
double deg
)
{
double i=360;
int    j=1;

  for(;(i-=deg)>=0;)
     {
      if((j*=-1)>0)GO(U,r);
      else         GU(U,r);

      TU(U,deg);
     }
}
/* ------------------------------------ */
void circleS(
double **U
)
{
int i=9;

  for(;i--;)
     {
      circle(U,1.,5.);
      TU(U,40.);
     }
}
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-30.,30.,-30.,30.);

  clrscrn();
  circleS(U);
     F_mR(U);

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

  return 0;
}
Résultat dans gnuplot
Turtles02


Deuxième exemple

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.

c02.c
Deuxième exemple
/* ------------------------------------ */
/* save as : c02.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
void arcR(
double **U,
double r,
double deg
)
{
int i=0;

  for(;i++<deg;)
     {
      if(fmod(i,2))GO(U,r);
      else         GU(U,r);

      TU(U,1.);
     }
}
/* ------------------------------------ */
void petal(
double **U,
double size
)
{
      arcR(U,size,60.);
      TU(U,120.);
      arcR(U,size,60.);
      TU(U,120.);
}
/* ------------------------------------ */
void flower(
double **U,
double size

)
{
int i=6;

  for(;i--;)
     {
      petal(U,size);
      TU(U,60.);
     }
}
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-500.,500.,-500.,500.);

   clrscrn();
   flower(U,10.);
     F_mR(U);

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

  return 0;
}
Résultat dans gnuplot
Turtles03


Troisième exemple

[modifier | modifier le wikicode]

N'oubliez pas les fichiers h de la librairie.

c03.c
Troisième exemple
/* ------------------------------------ */
/* save as : c03.c                      */
/* ------------------------------------ */
#include "v_a.h"
#include "y_o.h"
/* ------------------------------------ */
void arcR(
double **U,
double r,
double deg

)
{
int i=0;

  for(;i++<deg;)
     {
      if(fmod(i,2))GO(U,r);
      else         GU(U,r);

      TU(U,4.);
     }
}
/* ------------------------------------ */
void arcL(
double **U,
double r,
double deg
)
{
  for(;deg-->=0;)
     {
      GO(U,r);
      TU(U,-4.);
     }
}
/* ------------------------------------ */
void ray(
double **U,
double r
)
{
int i=2;

  for(;i--;)
     {
      arcL(U,r,45./2.);
      arcR(U,r,45./2.);
     }
}
/* ------------------------------------ */
void sun(
double **U,
double size

)
{
int i=9;

  for(;i--;)
     {
      ray(U,size);
      TU(U,160.);
     }
}
/* ------------------------------------ */
int main(void)
{
double **U = GINIT(-270.,80.,-40.,300.);

    sun(U,4.);
   F_mR(U);

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

  return 0;
}
Résultat dans gnuplot
Turtles04