Problème de crop

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Mouse

Problème de crop

Message non lu 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);

GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: Problème de Crop

Message non lu 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.
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: Problème de Crop

Message non lu 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);
Mouse

Re: Problème de Crop

Message non lu 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.
Mouse

Re: Problème de Crop

Message non lu 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.
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: Problème de Crop

Message non lu 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);
Mouse

Re: Problème de Crop

Message non lu par Mouse »

Encore merci !