Mathc gnuplot/Application : Dessiner en pointillés
La géométrie de la tortue dans Wikipedia.
Préambule
modifierPrésentation
modifierQuelques 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.
Dessiner
modifierPremier exemple
modifierN'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 |
---|
Deuxième exemple
modifierN'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 |
---|
Troisième exemple
modifierN'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 |
---|