Page 1 sur 1

Crop, crop ou ... rien ?

MessagePosté: Mardi 14 Septembre 2010, 18:54
par maurice
Bonjour,
Jusqu'à présent pour délimiter une courbe je faisais

Code: Tout sélectionner
xlimits(xmin,xmax,Crop);
ylimits(ymin,ymax,Crop);


que je placais à la fin de la figure.

J'ai vu sur des exemples de pivadi la même chose sans les Crop !

Quelle est donc la différence entre

Code: Tout sélectionner
xlimits(xmin,xmax,Crop);


et

Code: Tout sélectionner
xlimits(xmin,xmax);


Dans la doc (p118), on voit aussi des trucs du style :

Code: Tout sélectionner
draw(graph(T,xi),blue);
...
crop();
ylimits(0);


et le je nage.
Entre Crop, crop et ... rien c'est le flou !

Merci
maurice

Re: Crop, crop ou ... rien ?

MessagePosté: Mercredi 15 Septembre 2010, 15:39
par maurice
Re ...
J'ai fait un test :

Code: Tout sélectionner
import graph;
size(6cm,4cm,IgnoreAspect);
xlimits(-3,3);
ylimits(-9,9);
real f(real x) {return x^3;}
path cf=graph(f,-3,3,n=200);
draw(cf,red);
xaxis(Arrow);
yaxis(Arrow);


donne

4dd600abaa406d2b8f2fcfa65c2043ef.png

Code: Tout sélectionner
import graph;
size(6cm,4cm,IgnoreAspect);
xlimits(-3,3);
ylimits(-9,9);
real f(real x) {return x^3;}
path cf=graph(f,-3,3,n=200);
draw(cf,red);
xaxis(Arrow);
yaxis(Arrow);


et

Code: Tout sélectionner
import graph;
size(6cm,4cm,IgnoreAspect);
real f(real x) {return x^3;}
path cf=graph(f,-3,3,n=200);
draw(cf,red);
xaxis(Arrow);
yaxis(Arrow);
xlimits(-3,3,Crop);
ylimits(-9,9,Crop);


donne

ef2d5891257246a3cf3da19869a3ebe6.png

Code: Tout sélectionner
import graph;
size(6cm,4cm,IgnoreAspect);
real f(real x) {return x^3;}
path cf=graph(f,-3,3,n=200);
draw(cf,red);
xaxis(Arrow);
yaxis(Arrow);
xlimits(-3,3,Crop);
ylimits(-9,9,Crop);


Il y en a visibblement un qui ne marche pas ...
Quant au crop(0) ... c'est toujours le grand mystère.

Maurice

Re: Crop, crop ou ... rien ?

MessagePosté: Mercredi 15 Septembre 2010, 15:56
par maurice
Le réponse est (évidemment) dans la doc :

xlimits(picture pic=currentpicture, real min=-infinity, real max=infinity, bool crop=NoCrop);
void limits(picture pic=currentpicture, pair min, pair max, bool crop=NoCrop);


En gros, sans le Crop, crop=NoCrop et seul les axes sont délimités.
Placés en fin de code avec Crop, tous les objets sont coupés.

Code: Tout sélectionner
Existing objects in picture pic will be cropped to lie within the given limits if crop=Crop. The function crop(picture pic) can be used to crop a graph to the current graph limits.


Voila.
Comme quoi y'a tout dans la doc !
Il suffit de bien fouiller (ce qui n'est pas très évident avec celle ci).
Maurice


Edit : Par contre pour le :
Code: Tout sélectionner
crop();
ylimits(0);
de la doc (p 119), toujours le grand mystère ...

Re: Crop, crop ou ... rien ?

MessagePosté: Mercredi 15 Septembre 2010, 21:08
par OG
Bonsoir

Finalement dans la doc on trouve des choses. Sur l'aide Asymptote il y avait eu quelques questions

http://sourceforge.net/projects/asympto ... ic/2941331
http://sourceforge.net/projects/asympto ... ic/2065682
http://sourceforge.net/projects/asympto ... ic/3587680
http://sourceforge.net/projects/asympto ... ic/2806170

La place de xlimits(..., Crop) est fondamentale et Crop sert effectivement à rogner (couper, cropper, etc...) selon les valeurs des abcisses et/ou des ordonnées.

Code: Tout sélectionner
ylimits(0);

équivaut à
Code: Tout sélectionner
ylimits(0,l'infini);


La commande
Code: Tout sélectionner
crop();

quant à elle effectue le rognage là on le demande selon les valeurs données dans xlimits, ylimits ou les valeurs extrèmes des commandes draw (la plus petite boite contenant tous les tracés).

91057a6fc6a0bc0ef2ea6feb99c6a750.png

Code: Tout sélectionner
import graph;
size(0,200);
real x(real t) {return cos(2pi*t);}
real y(real t) {return sin(2pi*t);}
draw(graph(x,y,0,1));
label("$A$",(-1,-1),SW);
label("$B$",(1,1),NE);
crop();
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));


847f7a5dcd4f248531925ef42fe6c5ff.png

Code: Tout sélectionner
import graph;
size(0,200);
real x(real t) {return cos(2pi*t);}
real y(real t) {return sin(2pi*t);}
draw(graph(x,y,0,1));
label("$A$",(-1,-1),SW);
label("$B$",(1,1),NE);
xaxis("$x$",BottomTop,LeftTicks);
yaxis("$y$",LeftRight,RightTicks(trailingzero));


Voilà j'espère que cela éclaircit un peu plus.

O.G.

Re: Crop, crop ou ... rien ?

MessagePosté: Mercredi 15 Septembre 2010, 22:58
par maurice
OG a écrit:Voilà j'espère que cela éclaircit un peu plus.


Merci pour les infos, je vais fouiller les liens un peu plus tard.
J'y vois effectivement moins flou (un peu plus clair).
Maurice