[geometry_dev] Problème avec la fonction distance

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Re: [Asymptote] Problème avec la fonction distance

Messagepar MB » Jeudi 28 Août 2008, 16:53

pg a écrit:Est-ce que ça ne pourrait pas plutôt être un problème lié au fait qu'on ne revient pas sur la page d'accueil du forum latex après avoir lu un sujet ? J'ai fait deux ou trois test, et il me semble que ça ne me le fait que dans ces cas là.


C'est bizarre. Je ne vois pas à priori en quoi ça pourrait avoir un rapport. :|
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [Asymptote] Problème avec la fonction distance

Messagepar MB » Samedi 30 Août 2008, 16:59

Après quelques tests, il semble que la modification proposée pose un certain nombre de problèmes. Voici un exemple de code :

Code: Tout sélectionner
unitsize(1cm);
import geometry_dev;

point pA = (0,0);
point pB = (5,0);
point pC = (5,5);

dot(pA^^pB^^pC);
draw(pA--pB--pC--cycle);

distance(Label("$x \; \mathrm{cm}$"),pA,pB,3mm);
distance(Label("$y \; \mathrm{cm}$",align=E),pB,pC,3mm);
distance(Label("$z \; \mathrm{cm}$",align=N),pA,pC,-3mm);

shipout(bbox(xmargin=1mm,invisible));


Qui donne :

distance_2.png
distance_2.png (11.58 Kio) Vu 570 fois


On constate que le "z cm" n'est pas centré et que le "x cm" est traversé par les flèches.
C'est normal ou j'ai pas fait la bonne modification ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Problème avec la fonction distance

Messagepar Ph. Ivaldi » Samedi 30 Août 2008, 22:48

MB a écrit:Après quelques tests, il semble que la modification proposée pose un certain nombre de problèmes.
On constate que le "z cm" n'est pas centré


Toujours le même constat: l'alignement se fait, par défaut, de façon absolue.
Il faut donc coder:

Code: Tout sélectionner
distance(Label("$z \; \mathrm{cm}$",align=I*dir(pA--pC)),pA,pC,-3mm);


Si tu veux vraiment travailler relativement au chemin tu peux coder...

Code: Tout sélectionner
align RN; RN.init(W,relative=true);
distance(Label("$z \; \mathrm{cm}$",align=RN),pA,pC,-3mm);


... ce qui est un peu lourd.

MB a écrit: et que le "x cm" est traversé par les flèches.
C'est normal ou j'ai pas fait la bonne modification ?


C'est "normal", je fais cinquante choses en même temps et là «je m'est gouré» :oops:
Voici la fonction distance complète:

Code: Tout sélectionner
void distance(picture pic=currentpicture, Label L="", point A, point B,
              bool rotated=true, real offset=3mm,
              pen p=currentpen, pen joinpen=invisible,
              arrowbar arrow=Arrows(NoFill))
{
  pair A=A, B=B;
  path g=A--B;
  transform Tp=shift(-offset*unit(B-A)*I);
  pic.add(new void(frame f, transform t) {
      picture opic;
      path G=Tp*t*g;
      transform id=identity();
      transform T=rotated ? rotate(B-A) : id;
      Label L=L.copy();
      L.align(L.align,Center);
      if(abs(ypart((conj(A-B)*L.align.dir))) < epsgeo && L.filltype == NoFill)
        L.filltype=UnFill(1);
      draw(opic,T*L,G,p,arrow,Bars,PenMargins);
      pair Ap=t*A, Bp=t*B;
      draw(opic,(Ap--Tp*Ap)^^(Bp--Tp*Bp), joinpen);
      add(f,opic.fit());
    }, true);
  pic.addBox(min(g),max(g),Tp*min(p),Tp*max(p));
}


Je ne mets pas geometry_dev à jour pour l'instant car la nouvelle version est compatible avec la version SVN d'Asy mais plus avec la version courante.
Voilà, j'espère que ça va mieux :mrgreen:
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Problème avec la fonction distance

Messagepar MB » Dimanche 31 Août 2008, 17:19

Merci. Avec le code suivant et la fonction distance modifiée, on obtient bien ce qu'on voulait. :wink:

Code: Tout sélectionner
unitsize(1cm);
import geometry_dev;

point pA = (0,0);
point pB = (5,0);
point pC = (5,5);

dot(pA^^pB^^pC);
draw(pA--pB--pC--cycle);

distance(Label("$x \; \mathrm{cm}$"),pA,pB,3mm);
distance(Label("$y \; \mathrm{cm}$",align=E),pB,pC,3mm);
align RN; RN.init(W,relative=true);
distance(Label("$z \; \mathrm{cm}$",align=RN),pA,pC,-3mm);

shipout(bbox(xmargin=1mm,invisible));


Donc en effet ça va mieux, merci. :mrgreen:

Ph. Ivaldi a écrit:Je ne mets pas geometry_dev à jour pour l'instant car la nouvelle version est compatible avec la version SVN d'Asy mais plus avec la version courante.


Il va y avoir pas mal de modifications alors on dirait. Pas que pour la 3D.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Problème avec la fonction distance

Messagepar Ph. Ivaldi » Dimanche 31 Août 2008, 19:13

MB a écrit:Il va y avoir pas mal de modifications alors on dirait. Pas que pour la 3D.

En plus du support PRC, une grosse nouveauté est que les objets de type picture (comme currentpicture) peuvent être en 2D ou en 3D suivant ce que l'on a dessiné dedans. On pourra aussi inclure une picture 2D dans une picture 3D.
Du coup le type picture a pas mal changé mais cela restera invisible pour l'utilisateur.
J'ai vu passer ces infos dans les log SVN mais je n'ai encore rien testé...
Pour ce qui est de geometry_dev les changements sont infimes.
En revanche beaucoup de codes 3D compilables avec la version 1.43 ne le seront plus avec la version 1.44; c'est le prix à payer pour avoir de la vrai 3D.

Je pense que John est en train de mettre à jour la documentation, la sortie de la 1.44 avec PRC est très proche :D
(j'aurai quand même parié pour une version 2.0)
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Problème avec la fonction distance

Messagepar OG » Dimanche 31 Août 2008, 20:31

Bonsoir

Je ne sais pas si c'est cette histoire de 2D dans un dessin 3D. Voilà un petit test (bien sûr Acrobat Reader sur la bonne plateforme seulement).

bonne soirée
O.G.
Fichiers joints
GaussianSurface.pdf
(236.06 Kio) Téléchargé 78 fois
OG
Modérateur
 
Messages: 2285
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Précédente

Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité