linetype
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 :
- Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
- Version d'Asymptote et éditeur utilisé pour les figures Asymptote
- Distribution LaTeX et éditeur utilisé pour les tex.
On va gagner du temps dans les réponses !
linetype
Qui pourrait me dire la signification des chiffres entre guillemets (et des options true ou false) et notamment comment dois je faire pour avoir des longueurs en mm (ou cm) qui ressortent bien dans l'unité voulue ?
draw( (0,2)--(5,2) , linetype ("24 8 8 8" , false , true ) + 2mm); par exemple ...
Merci
Re: linetype
zariski a écrit :Qui pourrait me dire la signification des chiffres entre guillemets (et des options true ou false) et notamment comment dois je faire pour avoir des longueurs en mm (ou cm) qui ressortent bien dans l'unité voulue ?
draw( (0,2)--(5,2) , linetype ("24 8 8 8" , false , true ) + 2mm); par exemple ...
Question pas simple du tout (sache que cela dépend déjà si tu vas utiliser unitsize ou size pour ta figure ; si tu sais l'effet que size a sur une figure, tu imagines bien que souhaiter des traits d'une longueur précise peut sembler un peu contradictoire avec l'utilisation d'un size)...
... à laquelle je ne répondrai pas vraiment ce soir.
Je vais me contenter de deux exemples pour montrer que ce n'est pas si simple d'avoir un nombre précis de points pour un quadrillage, avec de simples commandes :
*** 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
- import math;
- unitsize(2cm);
- add(grid(4,1,dotted+1bp));
*** 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
- import math;
- unitsize(2cm);
- add(grid(4,1,dashed+1bp));
Les bonnes façons sont un peu compliquées :
*** 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
- import math;
- unitsize(2cm);
- pen p=linetype("0 " + string(2mm), offset=0, scale=false, adjust=false);
- add(grid(4,1,p+1bp));
*** 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
- import math;
- unitsize(2cm);
- pen p=linetype(string(2mm)+ " " + string(2mm), offset=0, scale=false, adjust=false);
- add(grid(4,1,p+1bp));
*** 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
- import math;
- unitsize(2cm);
- pen p=linetype(string(1mm)+ " " + string(1mm), offset=0, scale=false, adjust=false);
- add(grid(4,1,p+1bp));
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 !
Re: linetype
Une chose par contre, ce n'est pas le nombre de tirets qui m'importe mais plutôt leur longueur et épaisseur.
Ceci dit merci encore une fois pour la réponse.
Bonne soirée et bonne semaine.
Re: linetype
zariski a écrit :Cela me convient en partie.
Une chose par contre, ce n'est pas le nombre de tirets qui m'importe mais plutôt leur longueur et épaisseur.
Je veux bien affiner la réponse... si tu donnes un exemple précis à réaliser.
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 !
Re: linetype
Donc quel est l'intérêt de donner "24 8 8" par exemple ?
Au passage, ces 3 chiffres sont bien en unité bp, n'est ce pas !
Enfin j'avoue être perplexe ...
Re: linetype
Les exemples donnés semblent assez clairs, je trouve :
pour longdashdotted : {24,8,0,8} (avant dernière ligne)
{longueur de trait - longueur de l'espace sans trait - 1 point - longueur de l'espace sans trait}
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 !
Re: linetype
*** 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
- unitsize(1cm);
- path p=(0,0)--(4,0);
- transform t=shift(0,-1);
- marker croix= marker(scale(2)*cross(4),blue);
- pen stylo[]={linetype(string(1cm)+" "+string(1cm)), // 0
- linetype(string(1cm)+" "+string(1cm),scale=false,adjust=false), // 1
- linetype(string(1cm)+" "+string(1cm),scale=false,adjust=true), // 2
- 2bp+linetype(string(1cm)+" "+string(1cm),scale=false,adjust=false), // 3
- 2bp+linetype(string(1cm)+" "+string(1cm),scale=false,adjust=true), // 4
- 2bp+linetype(string(1/(2bp)*cm)+" "+string(1/(2bp)*cm),adjust=false), // 5
- linetype(string(1cm)+" "+string(1cm),offset=-2mm,scale=false,adjust=false) // 6
- };
- // Par défaut : real offset=0, bool scale=true, bool adjust=true
- for(int k=0; k<stylo.length; ++k) draw(Label(string(k),EndPoint),t^k*p,stylo[k],croix);
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 !
Re: linetype
Grand merci, je suis en train d'étudier les options ...
Re: linetype
- adjust à true fait en sorte que le motif occupe toute la largeur
- scale à true ajuste la longueur des tirets si une largeur de trait a été précisée avant linetype
-offset précise à partir de quand doit commencer le motif depuis le point de départ
Re: linetype
zariski a écrit :Ma conclusion :
- adjust à true fait en sorte que le motif occupe toute la largeur
- scale à true ajuste la longueur des tirets si une largeur de trait a été précisée avant linetype
-offset précise à partir de quand doit commencer le motif depuis le point de départ
je rectifie la première affirmation, puisque le motif sera évidemment répété un certain nombre de fois : adjust=true fait en sorte que cela ne se se termine pas par un blanc.
Sinon oui, je suis d'accord... en redisant que par défaut adjust et scale sont définis sur true... donc il faut les passer à false pour avoir le contrôle des longueurs... sans que la largeur ait une influence.
Il faudrait refaire des essais avec size (au lieu de unitsize) et adjust=false, scale=false , pour voir si Asymptote fait du "defered drawing" dans ce cas : respecte t-il encore les nombres de cm indiqués avec un 'size' ?
Autres remarques :
- il est intéressant de comparer les exemples 3 et 5 pour comprendre l'influence d'un scale=true... dans le cas d'une épaisseur demandée qui n'est pas égale à la valeur par défaut.
Deux exemples pour prolonger cette remarque :
http://www.marris.org/asymptote/Grilles ... 109_grille
http://www.marris.org/asymptote/Grilles ... 109_grille - on pourra regretter que cela ne soit pas plus simple (pour nous qui utilisons souvent le cm) pour avoir un nombre précis de points ou de traits par cm... mais compte tenu que l'on a finalement le quasi contrôle-total des traits en pointillés, on ne va pas trop se plaindre : il suffit de prédéfinir des styles et de les mettre dans un fichier asy de macros personnelles.
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 !