thin() et Arrow

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 !
YoungFrog
Messages : 14
Enregistré le : mar. 11 sept. 2012, 15:46

thin() et Arrow

Message non lu par YoungFrog » mer. 12 sept. 2012, 10:06

Bonjour,

J'ai vu dans la doc que thin() (qui renvoie essentiellement linewidth(0)) permet d'avoir un trait d'un pixel de large à toutes les résolutions. J'ai donc voulu tenter le (naïf ?)

Figure asymptote 545f36a102307af3fcc06fb8875ddf01
*** 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;
  2. size(5cm);
  3. draw((0,0)--(1,1)); // juste pour donner du volume.
  4. xaxis("$x$", thin(), Arrow);

mais ça donne une flèche énorme. Je postais donc sur le forum pour demander comment contourner ce souci, puis à force de farfouiller dans le code j'ai fini par trouver une solution, donc je vous la poste tant que j'y suis : le problème est probablement lié à la manière bizarre dont Arrow prend sa taille par défaut (size = 0 par défaut, et ce 0 est transformé plus tard en arrowhead.size(p), ce qui foire pour je ne sais quelle raison dans ce cas-ci) ; donc la solution est de donner à Arrow la taille qu'elle est censée avoir : Arrow(arrowsize()) par exemple.

Figure asymptote 81a2677e82a695638c1ba0649a132982
*** 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;
  2. size(5cm);
  3. draw((0,0)--(1,1)); // juste pour donner du volume.
  4. xaxis("$x$", thin(), Arrow(arrowsize()));


Je laisse à de plus vifs que moi le soin de comprendre pourquoi le mécanisme par défaut ne fonctionne pas ici.

--
Nico.
Gentoo GNU/Linux -- Asymptote 2.24svn avec Emacs -- TeXlive 2012

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

Re: thin() et Arrow

Message non lu par GM » mer. 12 sept. 2012, 11:51

Bonjour,
je me suis permis d'ajouter ci-dessus l'image correspondante à la solution proposée pour le problème, pour pouvoir mieux attirer l'attention de JCBowman en donnant un lien vers ce sujet... car je n'ai personnellement aucune idée sur le pourquoi de la chose.
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: thin() et Arrow

Message non lu par GM » mer. 12 sept. 2012, 12:04

Un sujet vient d'être ouvert sur le forum officiel à ce propos : https://sourceforge.net/projects/asympt ... ic/5655583
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: thin() et Arrow

Message non lu par GM » mer. 12 sept. 2012, 20:06

Mise à jour de la version d'asymptote du serveur et nouveau test :

Figure asymptote 8c17ef25f4d87878203c99b4bce9d92e
*** 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;
  2. size(5cm);
  3. draw((0,0)--(1,1),red);
  4. xaxis("$x$", thin(), Arrow);
  5. label("Asy "+version.VERSION,point(N),S);
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: thin() et Arrow

Message non lu par GM » jeu. 13 sept. 2012, 06:20

Si vous avez suivi le lien sur le site officiel, vous avez pu lire que JCBowman a testé le code sur la version 2.16 et sur la version SVN et il n'a pas constaté le problème soulevé par YoungFrog.

Alors que moi je le constate aussi bien sur Windows7+Asymptote2.16 que sur le serveur Ubuntu+Asymptote2.17SVN.

Etonnant...

Et les autres ? Problème ou pas chez vous ?
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 !

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: thin() et Arrow

Message non lu par OG » jeu. 13 sept. 2012, 10:22

Pas de pb
Siduction (Debian Sid), 64 bits, version svn du jour, texlive 2011

O.G.

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

Re: thin() et Arrow

Message non lu par GM » jeu. 13 sept. 2012, 10:49

OG a écrit :Pas de pb
Siduction (Debian Sid), 64 bits, version svn du jour, texlive 2011


C'est dingue cette histoire : je ne comprends pas ce qu'il se passe.
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 !

YoungFrog
Messages : 14
Enregistré le : mar. 11 sept. 2012, 15:46

Re: thin() et Arrow

Message non lu par YoungFrog » jeu. 13 sept. 2012, 11:04

Je suis assez heureux que GM et son site observent le même problème, sinon je serais passé pour fou :) Je propose de comparer nos -vvvvv sur l'exemple suivant, qui est un peu plus simple :

Figure asymptote 1914524a76f1b7f9a5b55c6f3e814831
*** 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(5cm);
  2. draw((0,0)--(1,1),thin(),Arrow());
  3. draw((0,0)--(1,0),thin(),Arrow());

et qui montre à quel point il y a une bizarrerie.
J'ai lancé

Code : Tout sélectionner

asy -vvvvv test.asy &> logging
là dessus, et ça donne un fichier logging que j'ai mis ici : http://bpaste.net/show/45247/
Malheureusement la lecture de ce fichier ne me parle pas vraiment directement, c'est pourquoi je propose que quelqu'un chez qui le problème n'apparait pas fasse la même chose (je propose de penser à enlever le fichier config.asy personnel, pour éviter que ça ne perturbe la chose ; c'est ce que j'ai fait), et qu'on passe un petit coup de diff pour tenter d'y voir clair.

--
Nico.
Gentoo GNU/Linux -- Asymptote 2.24svn avec Emacs -- TeXlive 2012

OG
V.I.P.
V.I.P.
Messages : 142
Enregistré le : dim. 7 mars 2010, 22:27

Re: thin() et Arrow

Message non lu par OG » jeu. 13 sept. 2012, 12:59

Comme j'ai une texlive2011 et donc des chemins différents, le diff est un peu long.
Voici ce que je peux extraire (hormis les chemins)
< c'est chez moi

Code : Tout sélectionner

2782c2788
< (1.11022e-16,0)
---
> (0,5.55112e-17)
2787c2793
< 1.11022e-16
---
> 5.55112e-17


2847c2853
< {curl 1}..{curl 1}(0,0)--(1,0)--(1,0)--(1,-5.55112e-17)--(0,0)
---
> {curl 1}..{curl 1}(0,0)--(1,0)--(1,0)--(1,4.80844e-17)--(0,0)
2850c2856
< {curl 1}..{curl 1}(0,0)--(-1,0)--(-1,0)--(-1,5.55112e-17)--(0,0)
---
> {curl 1}..{curl 1}(0,0)--(-1,0)--(-1,0)--(-1,-4.80844e-17)--(0,0)
2861,2862c2867,2868
< {curl 1} (0,0) {control (0.333333,2.77556e-17)}
< {control (0.666667,0)} (1,0) {control (1,0)}
---
> {curl 1} (0,0) {control (0.333333,2.48011e-18)}
> {control (0.666667,-2.49366e-18)} (1,0) {control (1,0)}
2864,2865c2870,2871
< {control (1,-5.55112e-17)} (1,-5.55112e-17) {control (0.666667,-5.55112e-17)}
< {control (0.333333,0)} (0,0) {curl 1}
---
> {control (1,4.80844e-17)} (1,4.80844e-17) {control (0.666667,4.55907e-17)}
> {control (0.333333,2.65087e-17)} (0,0) {curl 1}
2876,2877c2882,2883
< {curl 1} (0,0) {control (-0.333333,-2.77556e-17)}
< {control (-0.666667,0)} (-1,0) {control (-1,0)}
---
> {curl 1} (0,0) {control (-0.333333,-2.48011e-18)}
> {control (-0.666667,2.49366e-18)} (-1,0) {control (-1,0)}
2879,2880c2885,2886
< {control (-1,5.55112e-17)} (-1,5.55112e-17) {control (-0.666667,5.55112e-17)}
< {control (-0.333333,0)} (0,0) {curl 1}
---
> {control (-1,-4.80844e-17)} (-1,-4.80844e-17) {control (-0.666667,-4.55907e-17)}
> {control (-0.333333,-2.65087e-17)} (0,0) {curl 1}
2895,2896c2901,2902
< {control (0,0)} (0,0) {control (0.333333,2.77556e-17)}
< {control (0.666667,0)} (1,0) {control (1,0)}
---
> {control (0,0)} (0,0) {control (0.333333,2.48011e-18)}
> {control (0.666667,-2.49366e-18)} (1,0) {control (1,0)}
2898,2899c2904,2905
< {control (1,-5.55112e-17)} (1,-5.55112e-17) {control (0.666667,-5.55112e-17)}
< {control (0.333333,0)} (0,0) {control (0,0)}
---
> {control (1,4.80844e-17)} (1,4.80844e-17) {control (0.666667,4.55907e-17)}
> {control (0.333333,2.65087e-17)} (0,0) {control (0,0)}
2910,2911c2916,2917
< {control (0,0)} (0,0) {control (-0.333333,-2.77556e-17)}
< {control (-0.666667,0)} (-1,0) {control (-1,0)}
---
> {control (0,0)} (0,0) {control (-0.333333,-2.48011e-18)}
> {control (-0.666667,2.49366e-18)} (-1,0) {control (-1,0)}
2913,2914c2919,2920
< {control (-1,5.55112e-17)} (-1,5.55112e-17) {control (-0.666667,5.55112e-17)}
< {control (-0.333333,0)} (0,0) {control (0,0)}
---
> {control (-1,-4.80844e-17)} (-1,-4.80844e-17) {control (-0.666667,-4.55907e-17)}
> {control (-0.333333,-2.65087e-17)} (0,0) {control (0,0)}
2923c2929

< (0,0)--(0.5,-0.866025)--(0.5,-0.866025)--(0.5,-0.866025)--(0,0)--(0,0)--(1,0)--(1,0)--(1,-5.55112e-17)--(0,0)--(0,0)--(0.5,0.866025)--(0.5,0.866025)--(0.5,0.86
6025)--(0,0)--(0,0)--(-0.5,0.866025)--(-0.5,0.866025)--(-0.5,0.866025)--(0,0)--(0,0)--(-1,0)--(-1,0)--(-1,5.55112e-17)--(0,0)--(0,0)--(-0.5,-0.866025)--(-0.5,-0.
866025)--(-0.5,-0.866025)--(0,0)--cycle
---
> (0,0)--(0.5,-0.866025)--(0.5,-0.866025)--(0.5,-0.866025)--(0,0)--(0,0)--(1,0)--(1,0)--(1,4.80844e-17)--(0,0)--(0,0)--(0.5,0.866025)--(0.5,0.866025)--(0.5,0.866
025)--(0,0)--(0,0)--(-0.5,0.866025)--(-0.5,0.866025)--(-0.5,0.866025)--(0,0)--(0,0)--(-1,0)--(-1,0)--(-1,-4.80844e-17)--(0,0)--(0,0)--(-0.5,-0.866025)--(-0.5,-0.
866025)--(-0.5,-0.866025)--(0,0)--cycle

8002,8003c8008,8009
< (141.732,0)
< {curl 1}..{curl 1}(141.732,0)
---
> (141.732,-2.83454e-15)--(4.82941,36.683)
> {curl 1}..{curl 1}(4.82941,-36.683)--(141.732,2.83454e-15)
8007,8008c8013,8016
< (141.732,0) {curl 1}
< {curl 1} (141.732,0)
---
> (141.732,-2.83454e-15) {control (96.098,12.2277)}
> {control (50.4637,24.4553)} (4.82941,36.683) {curl 1}
> {curl 1} (4.82941,-36.683) {control (50.4637,-24.4553)}
> {control (96.098,-12.2277)} (141.732,2.83454e-15)
8012,8013c8020,8048
< {curl 1} (141.732,0) {control (141.732,0)}
< {control (141.732,0)} (141.732,0) {curl 1}
---
> {curl 1} (141.732,-2.83454e-15) {control (96.098,12.2277)}
> {control (50.4637,24.4553)} (4.82941,36.683) {curl 1}
> {curl 1} (4.82941,-36.683) {control (50.4637,-24.4553)}
> {control (96.098,-12.2277)} (141.732,2.83454e-15) {curl 1}
>
> solving section:
>
> {control (50.4637,24.4553)} (4.82941,36.683) {curl 1}
> {curl 1} (4.82941,-36.683) {control (50.4637,-24.4553)}
>
> dz:
>
> (0,-73.366)
> (0,0)
>
> d:
>
> 73.366
> 0
>
> psi:
>
> 0
> 0
>
> e:
>
> 0 * pre + 3 * piv + 3 * post = -0
> 3 * pre + 3 * piv + 0 * post = 0
8016c8051
< (141.732,0)--(141.732,0)
---
> (141.732,-2.83454e-15)--(4.82941,36.683)--(4.82941,-36.683)--(141.732,2.83454e-15)
8018,8022c8053,8057
< /usr/local/share/asymptote/plain_paths.asy: 242.3:
< /usr/local/share/asymptote/plain_paths.asy: 243.3:
< /usr/local/share/asymptote/plain_paths.asy: 244.3:
< /usr/local/share/asymptote/plain_paths.asy: 245.3:
< /usr/local/share/asymptote/plain_paths.asy: 246.3:
---
> /usr/local/texlive/2012/texmf/asymptote/plain_paths.asy: 262.3:
> /usr/local/texlive/2012/texmf/asymptote/plain_paths.asy: 263.3:
> /usr/local/texlive/2012/texmf/asymptote/plain_paths.asy: 264.3:
> /usr/local/texlive/2012/texmf/asymptote/plain_paths.asy: 265.3:
> /usr/local/texlive/2012/texmf/asymptote/plain_paths.asy: 266.3:
8024c8059
< (141.732,0)
---
> (141.732,-2.83454e-15)--(4.82941,36.683)--(4.82941,-36.683)
8029c8064,8066
< {curl 1} (141.732,0) {curl 1}
---
> {curl 1} (141.732,-2.83454e-15) {control (96.098,12.2277)}
> {control (50.4637,24.4553)} (4.82941,36.683) {control (4.82941,12.2277)}
> {control (4.82941,-12.2277)} (4.82941,-36.683) {curl 1}
8034c8071,8073
< {control (141.732,0)} (141.732,0) {control (141.732,0)}
---
> {curl 1} (141.732,-2.83454e-15) {control (96.098,12.2277)}
> {control (50.4637,24.4553)} (4.82941,36.683) {control (4.82941,12.2277)}
> {control (4.82941,-12.2277)} (4.82941,-36.683) {curl 1}
8036a8076,8100
> solving section:
>
> {control (4.82941,-12.2277)} (4.82941,-36.683) {curl 1}
> {curl 1} (141.732,-2.83454e-15) {control (96.098,12.2277)}
>
> dz:
>
> (136.903,36.683)
> (0,0)
>
> d
>
> 141.732
> 0
>
> psi:
>
> 0
> 0
>
> e:
>
> 0 * pre + 3 * piv + 3 * post = -0
> 3 * pre + 3 * piv + 0 * post = 0
>
8038c8102
< (141.732,0)--cycle
---
> (141.732,-2.83454e-15)--(4.82941,36.683)--(4.82941,-36.683)--cycle


je pense que asy -vvvv donnera tous les calculs intermédiaires mais évitera
tous les détails des fichiers.

O.G.

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: thin() et Arrow

Message non lu par Fabrice » jeu. 13 sept. 2012, 15:11

Bonjour,
Chez moi, le code compile sans problèmes (Debian Sid + Asymptote svn 2.17 + texlive 2012).
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Répondre