[geometry] grille dans un repere quelconque

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 !
maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

[geometry] grille dans un repere quelconque

Message non lu par maurice » lun. 5 mars 2012, 00:46

Bonsoir, je souhaitais faire une grille dans un repère quelconque pour x variant de -5 à 5 ainsi que y, et j'ai pensé à l'extension geometry mais :

Figure asymptote 070344ab27f9407546124b24ba140c86
*** 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. size(12cm);
  2. import geometry;
  3.  
  4. currentcoordsys=cartesiansystem((0,0),i=(1,0),j=(0.5,1.1));
  5. show(currentcoordsys, linewidth(1pt), Arrow);
  6.  
  7. for(int i=-5; i<6; ++i) {
  8. line l=line((-5,i), (5,i));
  9. draw(l, paleblue);
  10. }
  11. for(int i=-5; i<6; ++i) {
  12. line l=line((i, -5), (i, 5));
  13. draw(l, paleblue);
  14. }
  15. point A=(1,4);
  16. dot("$A$", A, NE);


La gille n'est pas complète.
Du coup j'ai pensé arranger le coup avec :

Code : Tout sélectionner

point mini=(-5,-5);
point maxi=(5,5);
dot(mini, invisible);
dot(maxi, invisible);


mais ...

Figure asymptote 64ebe62952e0f19513962adf3b80502e
*** 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. size(12cm);
  2. import geometry;
  3.  
  4. currentcoordsys=cartesiansystem((0,0),i=(1,0),j=(0.5,1.1));
  5. show(currentcoordsys, linewidth(1pt), Arrow);
  6.  
  7. for(int i=-5; i<6; ++i) {
  8. line l=line((-5,i), (5,i));
  9. draw(l, paleblue);
  10. }
  11. for(int i=-5; i<6; ++i) {
  12. line l=line((i, -5), (i, 5));
  13. draw(l, paleblue);
  14. }
  15.  
  16.  
  17.  
  18. point A=(1,4);
  19. dot("$A$", A, NE);
  20.  
  21. point mini=(-5,-5);
  22. point maxi=(5,5);
  23. dot(mini, invisible);
  24. dot(maxi, invisible);


Qu'en pensez-vous ?

Maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » lun. 5 mars 2012, 15:15

Bonjour,
quel genre de quadrillage souhaites-tu ?
Tu souhaites "remplir un rectangle"... ou tu veux ce genre de chose, en forme de parallélogramme ?

Figure asymptote 3720c199b77e5cce1519468ddbc82664
*** 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. size(12cm);
  2. import geometry;
  3. currentcoordsys=cartesiansystem((0,0),i=(1,0),j=(0.5,1.1));
  4. int xmin=-5, xmax=6, ymin=xmin, ymax=xmax;
  5. for(int i=ymin; i<ymax+1; ++i) draw(segment((xmin,i),(xmax,i)), paleblue);
  6. for(int i=xmin; i<xmax+1; ++i) draw(segment((i,ymin),(i,ymax)), paleblue);
  7. show(currentcoordsys, linewidth(1pt), Arrow);
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » lun. 5 mars 2012, 17:24

... et si ta préférence va au premier type de quadrillage cas que j'évoquais, j'ai songé à ce genre de chose :

Figure asymptote 92f6c6a2c302064bbc099cc590ea551c
*** 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. size(12cm);
  2. import geometry;
  3. currentcoordsys=cartesiansystem((0,0),i=(1,0),j=(0.5,1.1));
  4. coordsys Rc = currentcoordsys;
  5. int xmin=-8, xmax=6, ymin=-4, ymax=4;
  6. for(int i=ymin; i<ymax+1; ++i) draw(segment((xmin,i),(xmax,i)), paleblue);
  7. for(int i=xmin; i<xmax+1; ++i) draw(segment((i,ymin),(i,ymax)), paleblue);
  8. show(Rc, linewidth(1pt), Arrow);
  9. clip(box(Rc*(xmin,ymax),Rc*(xmax,ymin)));
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: [geometry] grille dans un repere quelconque

Message non lu par maurice » mar. 6 mars 2012, 01:50

GM a écrit :Bonjour,
quel genre de quadrillage souhaites-tu ?
Tu souhaites "remplir un rectangle"... ou tu veux ce genre de chose, en forme de parallélogramme ?


Exactement, merci, il va falloir un jour que je me mette à la lecture de la doc de geometry !

bonne soirée

Maurice

Edit : il n'y a pas de flèches au bout des axes malgré le Arrow. Peut-on les faire apparaître ?
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » mar. 6 mars 2012, 09:24

maurice a écrit :Edit : il n'y a pas de flèches au bout des axes malgré le Arrow. Peut-on les faire apparaître ?

Remarque préalable : j'ai failli ne pas voir ce que tu avais ajouté... car j'avais déjà lu le message avant sa modification. Dans un tel cas, il vaut mieux poster à la suite.

Sinon pour ta question, remplace :

Code : Tout sélectionner

show(Rc, linewidth(1pt), Arrow);

par :

Code : Tout sélectionner

show(Rc, linewidth(1pt), Arrow(SimpleHead));

et tu verras à quoi les flèches correspondent...

... mais ajouter Arrow est apparemment inutile : il y a une valeur par défaut.

----------------------------------

Plutôt que Arrow, il peut être intéressant de mettre Arrow(), si tu as redéfini avant le style par défaut des flèches.

Code : Tout sélectionner

DefaultHead=HookHead; 
show(Rc, linewidth(1pt), Arrow());

Arrow n'est pas suffisant dans un tel cas.

----------------------------------

Pour les flèches qui te préoccupent... du point de vue des mathématiques... il me semble que Philippe a adopté la bonne convention : comme lui, dans un repère où j'indique le repère (O;\vec{\imath},\vec{\jmath})... je ne mets pas de flèches au bout des axes.

Je mets des flèches au bout des axes... pour un repère où je gradue les axes... mais c'est pour représenter des courbes de fonction dans un repère qui est alors au moins orthogonal et j'utilise alors graph_pi.
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: [geometry] grille dans un repere quelconque

Message non lu par maurice » mar. 6 mars 2012, 14:57

GM a écrit :
Pour les flèches qui te préoccupent... du point de vue des mathématiques... il me semble que Philippe a adopté la bonne convention : comme lui, dans un repère où j'indique le repère (O;\vec{\imath},\vec{\jmath})... je ne mets pas de flèches au bout des axes.

Je mets des flèches au bout des axes... pour un repère où je gradue les axes... mais c'est pour représenter des courbes de fonction dans un repère qui est alors au moins orthogonal et j'utilise alors graph_pi.


Tout à fait d'accord, c'était juste par curiosité, et une remarque, l'ajout de l'argument Arrow n'avait pas d'effet.

maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » mar. 6 mars 2012, 15:13

maurice a écrit :l'ajout de l'argument Arrow n'avait pas d'effet.

On pourra imaginer que Philippe avait créé de nombreux d'exemples avant de décider de mettre une valeur par défaut pour l'argument arrow :

Code : Tout sélectionner

void show(picture pic=<default>,
                         Label lo=<default>,
                         Label li=<default>,
                         Label lj=<default>,
                         coordsys R,
                         pen dotpen=<default>,
                         pen xpen=<default>,
                         pen ypen=<default>,
                         pen ipen=<default>,
                         pen jpen=<default>,
                         bool arrow(picture, path, pen, marginT(path, pen))=<default>
                         );


Amélioration de l'index en projet : avoir les valeurs par défaut plutôt qu'il soit écrit <default>.

Mais je réalise que c'est une fonction de géométry.asy donc il vaut mieux regarder l'index de Philippe.
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » mer. 7 mars 2012, 10:30

GM a écrit :Amélioration de l'index en projet : avoir les valeurs par défaut plutôt qu'il soit écrit <default>.

En attendant... ajout d'une possibilité : celle de donner des liens filtrants :

Exemple, pour la commande show : http://gmaths.net/asy/index/?filtre=show

Autre exemple, avec la recherche de deux mots : http://gmaths.net/asy/index/?filtre=arc triple

-----------

Quand j'aurai réussi à régler un problème bizarre de conflit et/ou d'instabilité avec l'url-rewriting... j'envisage de rendre superflu d'écrire ?filtre= dans les liens précédents.
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: [geometry] grille dans un repere quelconque

Message non lu par maurice » ven. 12 oct. 2012, 01:16

Bonsoir je relance le sujet car j'ai un problème en utilisant le code proposé quelques messages avant :

Figure asymptote 52419beb05b4e6c41b308bd992eb0cd5
*** 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. unitsize(0.45cm);
  2. usepackage("esvect");
  3. import geometry;
  4.  
  5. currentcoordsys=cartesiansystem((0,0),i=(1/2,-sqrt(3)/2),j=(1/2,sqrt(3)/2));
  6. coordsys Rc = currentcoordsys;
  7. int xmin=0, xmax=8, ymin=xmin, ymax=xmax;
  8. for(int i=ymin; i<ymax+1; ++i) draw(segment((xmin,i),(xmax,i)), paleblue);
  9. for(int i=xmin; i<xmax+1; ++i) draw(segment((i,ymin),(i,ymax)), paleblue);
  10. show(Rc, linewidth(1pt), Arrow);
  11.  
  12. // draw(segment((3,0),(6,0)), red, Arrow);
  13. // draw(segment((3,0),(3,4)), red, Arrow);
  14.  
  15. // clip(box(Rc*(xmin,ymax),Rc*(xmax,ymin)));


mais si la dernière ligne est décommentée, j'obtiens alors un .eps tout blanc !

où est l'erreur ?

merci maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: [geometry] grille dans un repere quelconque

Message non lu par GM » ven. 12 oct. 2012, 06:57

Bonjour,

maurice a écrit :mais si la dernière ligne est décommentée, j'obtiens alors un .eps tout blanc !
où est l'erreur ?


Rajoute

Code : Tout sélectionner

write(box(Rc*(xmin,ymax),Rc*(xmax,ymin)));

et tu vas comprendre pourquoi.

Si tu veux que cette dernière ligne fonctionne dans tous les cas, il va falloir réfléchir aux calculs nécessaires des deux pairs attendus par box.

Code : Tout sélectionner

clip(box( .... , .... ));


Pour dépanner cet exemple précis, remplace la dernière ligne par :

Code : Tout sélectionner

clip(box(Rc*(xmax+2,ymin),Rc*(xmin-2,ymax)));

... et tu devrais comprendre l'incidence du +2 et -2 que j'ai ajoutés, pour pouvoir modifier l'exemple particulier que tu donnes, précisément comme tu le souhaites.
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

Répondre