papier millimétré et axes gradués

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
beata
Messages : 8
Enregistré le : mer. 25 avr. 2012, 08:22

papier millimétré et axes gradués

Message non lu par beata » sam. 5 mai 2012, 10:26

Bonjour,
je voudrais tracer un axe gradué avec un axe gradué dessus. Jusque là j'y arrive..
Le problème c'est que je veux que mon axe commence à 2 et finisse à 3!!
Et là, problème...

Code : Tout sélectionner

import graph_pi;
pen bpd=bp+brown+linetype("4 4");
graphicrules(xunit=10cm, yunit=1cm, xmin=1.8, xmax=3.2, ymin=-1.17, ymax=1.17);
add(millimeterpaper(p=1bp+orange),(0,0));
cartesianaxis(Lx=Label("$x$",align=2N),extrawidth=0,
              xticks=Ticks(),viewyaxis=false );


Merci pour votre aide

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » sam. 5 mai 2012, 14:02

Bonjour,

quelque chose comme cela peut-être :

Figure asymptote 14320c1ad6630cdd3f2de731d4fac6ca
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import graph_pi;
  2. real xmin=2, xmax=3,
  3. ymin=-1.5, ymax=1.5,
  4. margeX=.1, margeY=margeX;
  5. graphicrules(xunit=10cm, yunit=1cm,
  6. xmin=xmin-margeX, xmax=xmax+margeX,
  7. ymin=ymin-margeY, ymax=ymax+margeY,
  8. xcrop=true);
  9. add(millimeterpaper(xmin=xmin, xmax=xmax,
  10. ymin=ymin, ymax=ymax,
  11. p=1bp+orange),
  12. (0,0));
  13. cartesianaxis(Lx=Label("$x$",align=2N),
  14. xmin=xmin-margeX, xmax=xmax+margeX,
  15. extrawidth=0,
  16. xticks=Ticks(Step=.5, step=.1),
  17. viewyaxis=false );
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » sam. 5 mai 2012, 14:21

GM a écrit :quelque chose comme cela peut-être

Après coup... ce n'est pas encore parfait... et je me demande s'il n'y a pas un problème avec la fonction millimeterpaper de Philippe.
Pas le temps de faire mieux pour l'instant : je dois m'absenter.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

beata
Messages : 8
Enregistré le : mer. 25 avr. 2012, 08:22

Re: papier millimétré et axes gradués

Message non lu par beata » sam. 5 mai 2012, 15:10

C'est tout à fait ce qu'il me faut!!
Merci beaucoup!!
Il me reste encore beaucoup à apprendre...

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » sam. 5 mai 2012, 16:45

beata a écrit :C'est tout à fait ce qu'il me faut!!
Merci beaucoup!!
Il me reste encore beaucoup à apprendre...


S'il est suffisant, pour le même dessin, alors le code peut être réduit à cela :

Figure asymptote 518927560bf5debf670ba2d7b79bce9c
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import graph_pi;
  2. real xmin=2, xmax=3,
  3. ymin=-1.5, ymax=1.5,
  4. margeX=.1, margeY=margeX;
  5. graphicrules(xunit=10cm, yunit=1cm,
  6. xmin=xmin-margeX, xmax=xmax+margeX,
  7. ymin=ymin-margeY, ymax=ymax+margeY,
  8. xcrop=true);
  9. add(millimeterpaper(p=1bp+orange),(0,0));
  10. cartesianaxis(Lx=Label("$x$",align=2N),
  11. extrawidth=0,
  12. xticks=Ticks(Step=.5, step=.1),
  13. viewyaxis=false );


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.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » sam. 5 mai 2012, 16:51

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.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » sam. 5 mai 2012, 21:49

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;
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

Avatar du membre
pivaldi
V.I.P.
V.I.P.
Messages : 24
Enregistré le : jeu. 11 mars 2010, 21:09
Contact :

Re: papier millimétré et axes gradués

Message non lu par pivaldi » dim. 6 mai 2012, 00:13

Merci Gaétan !

J'ai corrigé graph_pi dans le dépôt git.
Content de voir que ce module Asymptote sert encore un peu :)

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1434
Enregistré le : dim. 7 mars 2010, 14:50

Re: papier millimétré et axes gradués

Message non lu par GM » dim. 6 mai 2012, 09:36

pivaldi a écrit :Merci Gaétan !

Je n'ai pas encore regardé ce que tu as modifié.... mais par anticipation, merci à toi, Philippe.

pivaldi a écrit :J'ai corrigé graph_pi dans le dépôt git.

Je vais mettre à jour ma version et celle du forum.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.66)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.66-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.66-? git) + TexLive2018
Merci de préciser la votre !

beata
Messages : 8
Enregistré le : mer. 25 avr. 2012, 08:22

Re: papier millimétré et axes gradués

Message non lu par beata » lun. 7 mai 2012, 10:28

Tout ça est un peu trop "technique" pour moi...
Je vais m'y mettre et regarder tout ça de plus près, es espérant y comprendre quelque chose.
En tout cas un grand merci à vous!!!

Répondre