plus rapide

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 !
zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

plus rapide

Message non lu par zariski » dim. 2 juin 2013, 14:12

Bonjour !
Je vous fais parvenir le code ci-dessous qui fonctionne.
Mais je souhaiterais savoir s'il n'y a pas une solution plus élégante.
Précision: je ne veux pas utiliser de package type 3D ...
merci

Figure asymptote 72bf89cec8cb3d95962d8aae864bdc05
*** 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(1cm);
  2.  
  3. picture pic1,pic2; unitsize(pic1,1cm);unitsize(pic2,1cm);
  4.  
  5.  
  6.  
  7. path p1=(0,0)--(3,0)--(3,3)--(0,3)--cycle,
  8. p2=(0,3)--(3,3)--(4.5,4)--(1.5,4)--cycle,
  9. p3=(3,0)--(4.5,1)--(4.5,4)--(3,3)--cycle,
  10. p4=(0,0)--(1.5,1)--(1.5,4),
  11. p5=(1.5,1)--(4.5,1);
  12.  
  13. draw(pic1,p1^^p2^^p3,1bp+black);
  14. draw(pic2,p4^^p5,linetype("8 8"));
  15.  
  16. add(pic1.fit()); add(pic2.fit());
  17.  
  18. add(scale(0.2)*pic1.fit(),(5,0));
  19. add(scale(0.2)*pic2.fit(),(5,0));
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: plus rapide

Message non lu par GM » dim. 2 juin 2013, 16:25

Bonjour,
je vais poser une question avant d'y aller d'une proposition : pourquoi pic1 et pic2... pour deux sous-parties différentes d'une même figure ?
Cela semble bizarre et inutile : rien que supprimer cela simplifierait déjà le code.
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 !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: plus rapide

Message non lu par zariski » dim. 2 juin 2013, 16:51

oh c'est très simple, parce que je ne comprends pas "picture" ... :roll:
J'ai adapté en fonction de ce que j'ai glané à droite à gauche. :?
En fait, plus généralement, j'aimerais comprendre comment créer plusieurs figures distinctes et les placer sur ma feuille en fonction de mes besoins.
Je pourrais ainsi créer, par exemple, une seule figure et lui appliquer ensuite des transformations au gré de mes besoins.
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: plus rapide

Message non lu par GM » dim. 2 juin 2013, 17:09

Avec une fonction... et divers arguments :

Figure asymptote 8beea8f6fec1baaaaf938dc7e70b6d0a
*** 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(1cm);
  2. void cube(picture pic=currentpicture, pair A=(0,0), real c=1,
  3. real k=.5, real alpha=pi/4,
  4. pen p1=currentpen+solid, pen p2=currentpen+dashed, bool po=true)
  5. {
  6. transform t=shift(c*k*cos(alpha),c*k*sin(alpha));
  7. draw(pic, shift(A)*((0,0)--(c,0)--(c,c)--(0,c)--cycle
  8. ^^(c,0)--t*(c,0)--t*(c,c)--(c,c)
  9. ^^t*(c,c)--t*(0,c)--(0,c)),
  10. p1);
  11. if(po) draw(pic,shift(A)*((0,0)--t*(0,0)--t*(c,0)^^t*(0,0)--t*(0,c)),p2);
  12. }
  13.  
  14. cube(c=3);
  15. cube(A=(5,0));
  16. cube(c=3,A=(0,-5),k=.7,alpha=pi/6,p1=red,p2=blue+white+dotted);
  17. cube(A=(5,-5),k=.7,alpha=pi/6,false);


Inconvénient peut-être : l'espacement des pointillés à revoir si tu veux donner l'impression que le petit cube est une réduction du grand même pour les espacements des pointillé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 !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: plus rapide

Message non lu par zariski » dim. 2 juin 2013, 17:17

outch !!!!
Va falloir que je décortique tout ça !!!
MERCI MERCI
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

Répondre