cast de path en path3

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 !
mumblee
Messages : 47
Enregistré le : jeu. 11 mars 2010, 10:29
Localisation : Lille

cast de path en path3

Message non lu par mumblee » jeu. 18 mars 2010, 09:38

Bonjour,

Dans la doc officielle, on peut lire :
Module three provides constructors for converting two-dimensional paths to three-dimensional ones, and vice-versa:
path3 path3(path p, triple plane(pair)=XYplane);
path path(path3 p, pair P(triple)=xypart);

J'ai essayé et, évidemment, ça marche, avec XYplane, YZplane ou ZXplane, mais pas avec XZplane par exemple. J'ai cherché dans three.asy et je n'ai pas trouvé trace de ces mots clés ni de ces fonctions. Où sont-elles définies ?

Merci.
Fabrice Eudes
Debian Bullseye 11.4, Asymptote 2.79, texlive 2022, Emacs 27.1

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

Re: cast de path en path3

Message non lu par OG » jeu. 18 mars 2010, 09:45

Dans three.asy

Code : Tout sélectionner

triple XYplane(pair z) {return (z.x,z.y,0);}
triple YZplane(pair z) {return (0,z.x,z.y);}
triple ZXplane(pair z) {return (z.y,0,z.x);}


O.G.

mumblee
Messages : 47
Enregistré le : jeu. 11 mars 2010, 10:29
Localisation : Lille

Re: cast de path en path3

Message non lu par mumblee » jeu. 18 mars 2010, 17:18

Bon, je ne suis pas bigleux, mais je ne suis pas doué.

Dans /usr/share/asymptote/three.asy, il n'y a rien, d'où mon précédent message !

Code : Tout sélectionner

fabrice@arwen:/usr/share/asymptote$ grep XYplane three.asy 
fabrice@arwen:/usr/share/asymptote$

En revanche, c'est dans les sources :

Code : Tout sélectionner

fabrice@arwen:~/Programmes/Asymptote/asymptote-1.91/base$ grep XYplane three.asy 
triple XYplane(pair z) {return (z.x,z.y,0);}
path3 path3(path p, triple plane(pair)=XYplane)
path3[] path3(explicit path[] g, triple plane(pair)=XYplane)
fabrice@arwen:~/Programmes/Asymptote/asymptote-1.91/base$

Par curiosité, les experts peuvent-ils me dire s'il y en a beaucoup des machins comme ça qui sont présents dans les sources mais qui disparaissent à l'installation ?

PS : il me semble que j'avais lu quelque part que le code relatif aux path3 avait été passé en C++, mais je ne retrouve plus la trace de cette information.
Fabrice Eudes
Debian Bullseye 11.4, Asymptote 2.79, texlive 2022, Emacs 27.1

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

Re: cast de path en path3

Message non lu par OG » jeu. 18 mars 2010, 18:12

Cher Fabrice

Tu n'aurais pas une vieille version qui traîne ?
Tu as l'air d'être sous Linux. Chez moi, ./configure+make+make install
m'installe asymptote dans /usr/local, pas /usr (sauf si tu as demandé
une installation dans /usr, ce qui n'est pas conseillé). J'ai bien three.asy
dans /usr/local/share/asymptote qui contient XYplane.
Je viens de vérifier le binaire sur le site d'Asymptote, celui-ci
s'installe aussi dans /usr/local et /usr/local/share/asymptote contient
un three.asy avec XYplane ?

Il faudrait peut-être vérifier ton installation, que donne asy -vv unexemple3D.asy
pour savoir où sont pris les *.asy ?

O.G.

mumblee
Messages : 47
Enregistré le : jeu. 11 mars 2010, 10:29
Localisation : Lille

Re: cast de path en path3

Message non lu par mumblee » ven. 19 mars 2010, 09:03

OG a écrit :Tu n'aurais pas une vieille version qui traîne ?

Ah non alors ! J'ai compilé la 1.91 il n'y a pas longtemps.

Tu as l'air d'être sous Linux. Chez moi, ./configure+make+make install
m'installe asymptote dans /usr/local, pas /usr (sauf si tu as demandé
une installation dans /usr, ce qui n'est pas conseillé).

Oui, Debian Lenny avec un zest de squeeze. Ah, tu as raison, j'ai une 1.43 qui traînait :oops:
Je ne m'en étais pas rendu compte car les binaires de /usr/local/bin/ étant appelés avant les autres, j'avais le comportement suivant

Code : Tout sélectionner

fabrice@arwen:~$ asy -version
Asymptote version 1.91 [(C) 2004 Andy Hammerlindl, John C. Bowman, Tom Prince]
fabrice@arwen:~$ which asy
/usr/local/bin/asy


J'ai bien three.asy
dans /usr/local/share/asymptote qui contient XYplane.
Je viens de vérifier le binaire sur le site d'Asymptote, celui-ci
s'installe aussi dans /usr/local et /usr/local/share/asymptote contient
un three.asy avec XYplane ?

Ah oui, ça va mieux en cherchant au bon endroit :)

Code : Tout sélectionner

fabrice@arwen:~$ grep XYplane /usr/local/share/asymptote/three.asy 
triple XYplane(pair z) {return (z.x,z.y,0);}
path3 path3(path p, triple plane(pair)=XYplane)
path3[] path3(explicit path[] g, triple plane(pair)=XYplane)

Installation rectifiée, merci de ton aide !
Fabrice Eudes
Debian Bullseye 11.4, Asymptote 2.79, texlive 2022, Emacs 27.1

Répondre