Page 1 sur 1

Problème de crop

MessagePosté: Dimanche 29 Juillet 2012, 13:11
par Mouse
Bonjour,

Je débute en Aymptote (en fait je débute tous les 4 ans comme les J.O) et j'ai un problème avec la place de Crop. J'ai mis du temps à la trouver pour que dans l'exemple suivant, la droite soit correctement coupée mais du coup le bout de mes axes (flèches, labels ) est également coupé. Ai-je mal placé l'instruction ? ou peut-on rallonger un peu les axes ?

Merci

Code: Tout sélectionner
import graph_pi;

graphicrules(xunit=1.5cm, yunit=1.5cm, xmin=-4,xmax=4,ymin=-0.5,ymax=5,crop=Crop);

real extrawidth=0.3;
Label laxis; laxis.p = fontsize(12);
cartesianaxis(xticks=Ticks("%",Step=1,Size=1.5), yticks=Ticks("%",NoZero,Step=1,Size=1.5), Arrow(2mm));
labeloij();


 /* draw figures */
real f1 (real x) {return log(2*exp(x)+1);}
draw(graph(f1,-4,4), 1bp+blue);
real f2 (real x) {return x+log(2);}
draw(graph(f2,-4,4), linewidth(0.8));

label("$\mathcal{C}_f$",(1.2,f1(1.2)),3*W,blue);


Re: Problème de Crop

MessagePosté: Dimanche 29 Juillet 2012, 18:31
par GMaths
Bonjour,

j'ai quelques questions avant de réfléchir au problème :

- quelle version de graph_pi ? La dernière version est là : http://git.piprime.fr/?p=asymptote/pi-p ... aph_pi.asy
Cela n'a rien à voir avec la question posée mais je signale qu'il y avait, à son propos, une discussion en cours à propos d'un mauvais fonctionnement de la fonction millimeterpaper dans certains cas particuliers.

- il faut vraiment à la fois les flèches au bout des axes et les vecteurs de base ? On a déjà eu cette discussion avec d'autres : il me semble que cela devrait être l'un ou l'autre, suivant que l'on met des axes gradués ou pas.

Re: Problème de Crop

MessagePosté: Dimanche 29 Juillet 2012, 19:00
par GMaths
Sinon... sans "croper", peut-être comme cela :

Code: Tout sélectionner
import graph_pi;

real xunit=1.5cm, xmin=-4, xmax=5, extrax=.5,
     yunit=1.5cm, ymin=-3, ymax=5, extray=.5;
     
graphicrules(xunit=xunit,yunit=yunit,xmin=xmin,xmax=xmax,ymin=ymin,ymax=ymax);
cartesianaxis(xmin=xmin, xmax=xmax+extrax,
              ymin=ymin, ymax=ymax+extray,
              xticks=Ticks("%",Step=1,Size=1.5), yticks=Ticks("%",NoZero,Step=1,Size=1.5), Arrow(2mm));

Label laxis; laxis.p = fontsize(12);
labeloij();

/* draw figures */
real f1 (real x) {return log(2*exp(x)+1);}
draw(graph(f1,xmin,xmax), 1bp+blue);
real f2 (real x) {return x+log(2);}
draw(graph(f2,xmin,xmax), linewidth(0.8));

label("$\mathcal{C}_f$",(1.2,f1(1.2)),3*W,blue);

Re: Problème de Crop

MessagePosté: Dimanche 29 Juillet 2012, 20:09
par Mouse
GMaths a écrit:Bonjour,

j'ai quelques questions avant de réfléchir au problème :

- quelle version de graph_pi ? La dernière version est là : http://git.piprime.fr/?p=asymptote/pi-p ... aph_pi.asy
Cela n'a rien à voir avec la question posée mais je signale qu'il y avait, à son propos, une discussion en cours à propos d'un mauvais fonctionnement de la fonction millimeterpaper dans certains cas particuliers.

- il faut vraiment à la fois les flèches au bout des axes et les vecteurs de base ? On a déjà eu cette discussion avec d'autres : il me semble que cela devrait être l'un ou l'autre, suivant que l'on met des axes gradués ou pas.


C'est bien cette version de graph_pi qui est installée. Pour les flèches en général je n'en mets pas 2, j'ai mis labeloij pour justement contourner le problème des flèches effacées au bout.

Re: Problème de Crop

MessagePosté: Dimanche 29 Juillet 2012, 20:35
par Mouse
GMaths a écrit:Sinon... sans "croper", peut-être comme cela :

Code: Tout sélectionner
import graph_pi;

real xunit=1.5cm, xmin=-4, xmax=5, extrax=.5,
     yunit=1.5cm, ymin=-3, ymax=5, extray=.5;
     
graphicrules(xunit=xunit,yunit=yunit,xmin=xmin,xmax=xmax,ymin=ymin,ymax=ymax);
cartesianaxis(xmin=xmin, xmax=xmax+extrax,
              ymin=ymin, ymax=ymax+extray,
              xticks=Ticks("%",Step=1,Size=1.5), yticks=Ticks("%",NoZero,Step=1,Size=1.5), Arrow(2mm));

Label laxis; laxis.p = fontsize(12);
labeloij();

/* draw figures */
real f1 (real x) {return log(2*exp(x)+1);}
draw(graph(f1,xmin,xmax), 1bp+blue);
real f2 (real x) {return x+log(2);}
draw(graph(f2,xmin,xmax), linewidth(0.8));

label("$\mathcal{C}_f$",(1.2,f1(1.2)),3*W,blue);


Merci pour ton aide ! mais pour cause de gain de place dans un doc, j'aimerais que la droite soit coupée en gros au niveau de y=-0.5 par exemple. Bon ce n'est pas difficile à contourner car il suffit que je ne trace pas la fonction sur l'intervalle xmin-xmax donc il n'y a pas urgence, mais je me demande quand même pourquoi le crop ne joue pas son rôle. Sinon en utilisant clip ça marche aussi.

Re: Problème de Crop

MessagePosté: Dimanche 29 Juillet 2012, 21:15
par GMaths
Dans ton exemple dont j'ai modifié une partie sans tout lire... j'ai oublié de supprimer le laxis qui ne sert à rien.

Mouse a écrit:Merci pour ton aide ! mais pour cause de gain de place dans un doc, j'aimerais que la droite soit coupée en gros au niveau de y=-0.5 par exemple. Bon ce n'est pas difficile à contourner car il suffit que je ne trace pas la fonction sur l'intervalle xmin-xmax donc il n'y a pas urgence, mais je me demande quand même pourquoi le crop ne joue pas son rôle. Sinon en utilisant clip ça marche aussi.


Une solution avec l'extension graph officielle :

Code: Tout sélectionner
unitsize(1.5cm);

import graph;

real xmin=-4,   xmax=5, xstep=1, extx=.8,
     ymin=-1.5, ymax=5, ystep=1, exty=extx;

real f1 (real x) {return log(2*exp(x)+1);}
real f2 (real x) {return x+log(2);}

draw(graph(f1,xmin,xmax), 1bp+blue);
draw(graph(f2,xmin,xmax), linewidth(0.8));

ylimits(ymin,ymax,Crop);

Arrow = Arrow(2mm);
xaxis(xmin,xmax+extx,Ticks("%",Step=xstep,Size=1.5), Arrow);
yaxis(ymin,ymax+exty,Ticks("%",Step=ystep,Size=1.5), Arrow);

xaxis(nullpen,Ticks(NoZero,Step=2));
yaxis(nullpen,Ticks(NoZero,Step=2));

label("$\mathcal{C}_f$",(1.2,f1(1.2)),3*W,blue);

Re: Problème de Crop

MessagePosté: Lundi 30 Juillet 2012, 18:55
par Mouse
Encore merci !