GM a écrit :GM a écrit :Mais ce n'est pas ce que je voulais faire moi... et les valeurs xmin, xmax,... passées à millimeterpaper dans ma première proposition ne sont pas prises en compte, donc il me semble qu'il y a un problème avec millimeterpaper.
D'ailleurs cela me semble confirmé dans l'un des exemples de Philippe :
http://www.piprime.fr/906/graph_pi_asy-fig0050/.
Je vais attirer son attention sur cette discussion par mail.
C'est fait... et en attendant sa réponse, j'ai jeté un oeil à la définition de
millimeterpaper dans graph_pi.
Code : Tout sélectionner
picture millimeterpaper(picture pic=currentpicture, pair O=(0,0),
real xmin=infinity, real xmax=infinity,
real ymin=infinity, real ymax=infinity,
pen p=.5bp+orange)
{
picture opic;
real
cofx=pic.xunitsize/cm,
cofy=pic.yunitsize/cm;
write(cofx,cofy);
real
xmin= (xmin <= infinity) ? pic.userMin().x*cofx : xmin*cofx,
xmax= (xmax <= infinity) ? pic.userMax().x*cofx : xmax*cofx,
ymin= (ymin <= infinity) ? pic.userMin().y*cofy : ymin*cofy,
ymax= (ymax <= infinity) ? pic.userMax().y*cofy : ymax*cofy;
write(xmin,xmax,ymin,ymax);
path
ph=(xmin*cm,0)--(xmax*cm,0),
pv=(0,ymin*cm)--(0,ymax*cm);
real [] step={5, 1, .5, .1};
pen [] p_={ p, scale(.7)*p, scale(.4)*p, scale(.2)*p};
for (int j=0; j<4; ++j)
{
for (real i=O.y; i<= ymax; i+=step[j])
draw(opic, shift(0,i*cm)*ph, p_[j]);
for (real i=O.y; i>=ymin ; i-=step[j])
draw(opic, shift(0,i*cm)*ph, p_[j]);
for (real i=O.x; i<=xmax; i+=step[j])
draw(opic, shift(i*cm,0)*pv, p_[j]);
for (real i=O.x; i>=xmin; i-=step[j])
draw(opic, shift(i*cm,0)*pv, p_[j]);
}
return opic;
}
Les lignes suivantes me laissent perplexe... et je ne suis plus étonné que xmin, xmax, ymin, ymax semblent inefficaces car je ne vois pas trop comment un test tel que
(xmin <= infinity) pourrait être autre chose que
true.
Code : Tout sélectionner
real
xmin= (xmin <= infinity) ? pic.userMin().x*cofx : xmin*cofx,
xmax= (xmax <= infinity) ? pic.userMax().x*cofx : xmax*cofx,
ymin= (ymin <= infinity) ? pic.userMin().y*cofy : ymin*cofy,
ymax= (ymax <= infinity) ? pic.userMax().y*cofy : ymax*cofy;