Figure à base de cylindre

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.

Messagepar Ph. Ivaldi » Lundi 15 Janvier 2007, 22:52

MB a écrit:Merci pour la modification de la fonction.


Avec plaisir.

MB a écrit:Par ailleurs, ce que j'ai utilisé pour les marques d'égalité de longueurs est correct ou il y avait plus simple ? (ou plus propre)


Je n'ai pas trouvé plus simple. Il faut que j'en parle au principal développeur d'Asymptote pour voir s'il peut ajouter cette fonctionnalité, éventuellement utiliser mon code.

MB a écrit:
Ph. Ivaldi a écrit:Une question: comment faites vous pour obtenir de la transparence dans le .png ?
asy -V -f png fichier.asy ne rend pas la transparence.


En fait, je compile toujours en PDF avec Asymptote et j'effectue ensuite la conversion en PNG via la fonction convert d'ImageMagick.


C'est noté, merci.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Publicité

Messagepar MB » Lundi 15 Janvier 2007, 22:54

Ph. Ivaldi a écrit:Il faut peut-être essayer la commande filldraw, quand c'est possible.


Il faudra essayer.
Mais je pense plutôt que c'est l'ordre qu'il faut changer.
Il faudrait à mon avis tracer les contours du cylindre après avec remplis la section.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Lundi 15 Janvier 2007, 23:08

Ph. Ivaldi a écrit:(la suppression de l'anti-aliasing --option +antialias -- réduit le poids me semble-t-il).


J'ai essayé et j'ai pas trop l'impression.

Sinon, voici le code qui permet d'avoir les contours bien noirs.

Code: Tout sélectionner
nitsize(1cm);
import solids;
import math;

currentprojection=orthographic(-50,100,30);

//Draw right angle (MA,MB) in 3D
void drawrightangle(picture pic=currentpicture,
                    triple M, triple A, triple B,
                    real radius,
                    pen p=currentpen,
                    pen fillpen=nullpen,
                    projection P=currentprojection)
{
  p=linejoin(0)+linecap(0)+p;
  transform3 T=shift(-M);
  triple OA=radius/sqrt(2)*unit(T*A),
    OB=radius/sqrt(2)*unit(T*B),
    OC=OA+OB;
  path3 _p=shift(M)*(O--OA--OC--OB--cycle3);
  if (fillpen==nullpen)
    draw(pic, _p, p=p);
  else filldraw(pic, _p, fillpen=fillpen, drawpen=p);
}

real r=4, h=2.5;
real gle=60;
real gleA=20;
transform3 tR=rotate(gle,Z);
transform3 tT=shift((0,0,-h));

triple p0=(0,0,h),
  pA=rotate(gleA,Z)*(0,r,h),
  pF=tR*pA,
  pB=tR*pF,
  pD=tT*pA,
  pC=tT*pB,
  pE=intersectionpoint(p0--pF,pA--pB);

revolution r=cylinder(O,r,h,Z);

fill(pA--pD--pC--pB--cycle3,lightgray+opacity(0.5));

drawrightangle(pE,p0,pB,0.6,fillpen=gray);

dot(Label("$A$",align=NW),pA);
dot(Label("$B$",align=NE),pB);
dot(Label("$C$",align=S),pC);
dot(Label("$D$",align=NW),pD);
dot(Label("$E$",align=S),pE);
dot(Label("$F$",align=S),pF);
dot(Label("$O$",align=N),p0);
dot(Label("$O'$",align=NE),O);

r.draw();

draw(O--p0, dashed);
draw(p0--pB--pF--pA--cycle3^^p0--pF^^pA--pB^^pA--pD);
draw(O--pD--pC--cycle3^^O--p0^^pB--pC, dashed);

typedef void dotmark(picture, pair);
dotmark DotMark(pen p=currentpen)
{
  return new void(picture pic, pair pt)
    {
      dot(pic,pt,p);
    };
}

dotmark NoDotMark(pen p=currentpen)
{
  return new void(picture pic, pair pt){};
}

dotmark DotMark=DotMark();
dotmark NoDotMark=NoDotMark();

markroutine dirmarkroutine(int n, dotmark dotmark=NoDotMark) {
  return new void(picture pic=currentpicture, path g, frame f) {
    if(n == 0) return;
    else
      {
        real width=1/n;
        for(int i=0; i < n; ++i){
          add(pic,
              rotate(degrees(dir(g,arctime(g,(i+.5)*width*arclength(g)))))*f,
              relpoint(g,(i+.5)*width));
          dotmark(pic,relpoint(g,i*width));
        }
        dotmark(pic,relpoint(g,1));
      }
  };
}

picture picturemarkmaker(path g, real n=1,
                         real size=0, real space=0,
                         real angle=0, real hoffset=0, pen p=currentpen)
{
  picture opic;
  int pos=0;
  for(int i=1; i<=n; ++i)
    {
      draw (opic,shift((space*(pos-.5*((n+1)%2)),hoffset))*
            rotate(angle)*
            scale(size/2)*g,p);
      pos=pos+i*(-1)^(i+1);
    }
  return opic;
}

real minstickmarkspace=dotsize(currentpen);
real minstickmarksize=3*dotsize(currentpen);
frame stickpicture(real n=1, real size=0, real space=0,
                   real angle=0, real hoffset=0, pen p=currentpen)
{
  if(size == 0) size=minstickmarksize+2*linewidth(p);
  if(space == 0) space=minstickmarkspace+linewidth(p);
  return picturemarkmaker(N--S,n,size,space,angle,hoffset,p).fit();
}

marker StickMarker(int n=1, int div=1,
                   real size=0, real space=0,
                   real angle=0, real hoffset=0,
                   dotmark dotmark=NoDotMark(), pen p=currentpen)
  {
    return marker(stickpicture(n,size,space,angle,hoffset,p),dirmarkroutine(div,dotmark));
  }

draw(p0--pF,StickMarker(1,2,size=6,angle=-45,DotMark,red)); 

shipout(bbox(xmargin=2mm,invisible));
Fichiers joints
Figure2.png
(134.59 Kio) Téléchargé 507 fois
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Lundi 15 Janvier 2007, 23:39

Ph. Ivaldi a écrit:
MB a écrit:Par ailleurs, ce que j'ai utilisé pour les marques d'égalité de longueurs est correct ou il y avait plus simple ? (ou plus propre)


Je n'ai pas trouvé plus simple. Il faut que j'en parle au principal développeur d'Asymptote pour voir s'il peut ajouter cette fonctionnalité, éventuellement utiliser mon code.


Oui, c'est surprenant que ça ne soit pas compris dans le module géométrie ça quand même. C'est du même ordre que l'angle droit.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Lundi 15 Janvier 2007, 23:59

MB a écrit:
Ph. Ivaldi a écrit:
MB a écrit:Par ailleurs, ce que j'ai utilisé pour les marques d'égalité de longueurs est correct ou il y avait plus simple ? (ou plus propre)


Je n'ai pas trouvé plus simple.


Oui, c'est surprenant que ça ne soit pas compris dans le module géométrie ça quand même. C'est du même ordre que l'angle droit.


Je crois que les anglo-saxons n'utilisent pas ces marques mais je dis peut-être une bêtise.
Quand au paquet geometry.asy, il se réduit à sa plus simple expression; il faut quand même voir que Asymptote est un logiciel encore très jeune.
J'ai dû y ajouter pas mal de chose pour pouvoir réellement faire des figures de géométrie.

Pour la 3D, il a été question dernièrement sur le forum de fournir une sortie "u3d" (pour ceux qui ne connaissent pas:http://www.pdf3d.co.uk/); j'attends ça avec impatience...

Ph. Ivaldi a écrit:Il faut que j'en parle au principal développeur d'Asymptote pour voir s'il peut ajouter cette fonctionnalité, éventuellement utiliser mon code.


Réflexion faite, si ça ne conserne que les "frogs", je n'en parlerais pas; mes macros me suffisent et sont relativement bien faites 8) .
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mardi 16 Janvier 2007, 00:18

Ph. Ivaldi a écrit:Quand au paquet geometry.asy, il se réduit à sa plus simple expression; il faut quand même voir que Asymptote est un logiciel encore très jeune.
J'ai dû y ajouter pas mal de chose pour pouvoir réellement faire des figures de géométrie.


Oui c'est vrai qu'il est assez court. J'ai vu ton package geometry_pi qui ajoute pas mal de choses en effet.

Ph. Ivaldi a écrit:Pour la 3D, il a été question dernièrement sur le forum de fournir une sortie "u3d" (pour ceux qui ne connaissent pas:http://www.pdf3d.co.uk/); j'attends ça avec impatience...


Ah oui, je ne connaissais pas. Ca semble puissant en effet. :D

Ph. Ivaldi a écrit:
Ph. Ivaldi a écrit:Il faut que j'en parle au principal développeur d'Asymptote pour voir s'il peut ajouter cette fonctionnalité, éventuellement utiliser mon code.


Réflexion faite, si ça ne conserne que les "frogs", je n'en parlerais pas; mes macros me suffisent et sont relativement bien faites 8) .


Bah, ça ne lui couterait pas grand chose de compléter son package geometry ... même si ça ne sert pas à tout le monde. :P
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mardi 16 Janvier 2007, 00:49

MB a écrit:Sinon, voici le code qui permet d'avoir les contours bien noirs.

Code: Tout sélectionner
...
fill(pA--pD--pC--pB--cycle3,lightgray+opacity(0.5));
...
dot(Label("$O'$",align=NE),O);
...


Il faut placer le label O' de O avant le remplissage, sinon ça choque...
Chez moi il y a bogue, tous les labels sont grisés et je ne sais pas d'où vient le problème; pas d'Asymptote visiblement.

Que donne $ gs --version chez vous ?
Chez moi 7.07.1.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 17 Janvier 2007, 16:54

Ph. Ivaldi a écrit:Que donne $ gs --version chez vous ?
Chez moi 7.07.1.


C'est quoi ? (la version de Ghostscript ?)
Si c'est ça, j'ai la 8.54.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mercredi 17 Janvier 2007, 17:48

MB a écrit:
Ph. Ivaldi a écrit:Que donne $ gs --version chez vous ?
Chez moi 7.07.1.


C'est quoi ? (la version de Ghostscript ?)
Si c'est ça, j'ai la 8.54.


C'est bien la version de Ghostscript.
En plus chez moi j'avais la version gs-eps et non la gs-gpl standard.
En installant la version 8.54 tout rentre dans l'ordre:
https://sourceforge.net/forum/forum.php?thread_id=1652043&forum_id=409349

En revanche je suis déçu: que l'on ne puisse pas faire de labels transparent, je comprends, mais que la transparence n'affecte pas les labels c'est vraiment dommage...
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 17 Janvier 2007, 18:13

Ph. Ivaldi a écrit:En revanche je suis déçu: que l'on ne puisse pas faire de labels transparent, je comprends, mais que la transparence n'affecte pas les labels c'est vraiment dommage...


Oui, j'ai vu dans la doc que c'était fait exprès.
On ne peut pas définir de transparence pour les labels ...
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mercredi 17 Janvier 2007, 20:20

MB a écrit:
Ph. Ivaldi a écrit:En revanche je suis déçu: que l'on ne puisse pas faire de labels transparent, je comprends, mais que la transparence n'affecte pas les labels c'est vraiment dommage...


Oui, j'ai vu dans la doc que c'était fait exprès.
On ne peut pas définir de transparence pour les labels ...


Je crois qu'on ne se comprend pas... :?
Dans le documentation je vois:

Labels are always drawn with an opacity of 1.


Cela ne signifie pas que la couleur du label ne soit pas affectée par un objet opaque(0.5).
Une surface opaque modifie la couleur des objets se trouvant dans cette surface, elle ne modifie pas leur opacité.
Aurais-je loupé quelque chose ?
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 17 Janvier 2007, 20:46

Ph. Ivaldi a écrit:Je crois qu'on ne se comprend pas... :?
Dans le documentation je vois:

Labels are always drawn with an opacity of 1.


Oui, c'est ce que j'avais vu aussi.

Ph. Ivaldi a écrit:Cela ne signifie pas que la couleur du label ne soit pas affectée par un objet opaque(0.5).
Une surface opaque modifie la couleur des objets se trouvant dans cette surface, elle ne modifie pas leur opacité.
Aurais-je loupé quelque chose ?


Pour moi, cela signifie qu'il n'est pas possible de définir l'opacité d'un label (on ne peut pas le rendre transparent). Par contre, je pense que ça dépend de l'ordre dans lequel se trouve les instructions. Si le label était déjà imprimé lorsqu'on rempli une surface transparente par dessus-ce label, alors sa couleur sera sans doute modifiée. Par contre, si on le place après, la couleur ne sera pas modifiée et on ne pourra pas rendre le label transparent. Après, je ne suis pas certain qu'on se comprenne très bien en effet. Il faudrait faire des tests et donner des exemples de rendu.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Mercredi 17 Janvier 2007, 21:13

MB a écrit:Si le label était déjà imprimé lorsqu'on rempli une surface transparente par dessus-ce label, alors sa couleur sera sans doute modifiée.


Après des tests, ça n'est pas le cas.

Code de la figure1 :

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

filldraw(circle((0,0),2),blue+opacity(0.6));
dot(Label("$O$",align=N),(0,0));

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


Code de la figure2 :

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

dot(Label("$O$",align=N),(0,0));
filldraw(circle((0,0),2),blue+opacity(0.6));

shipout(bbox(xmargin=1mm,invisible));
Fichiers joints
figure2.png
(4.45 Kio) Téléchargé 424 fois
figure1.png
(4.44 Kio) Téléchargé 424 fois
Dernière édition par MB le Mercredi 17 Janvier 2007, 23:07, édité 1 fois.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mercredi 17 Janvier 2007, 22:14

MB a écrit:
MB a écrit:Si le label était déjà imprimé lorsqu'on rempli une surface transparente par dessus-ce label, alors sa couleur sera sans doute modifiée.


Après des tests, ça n'est pas le cas.


Voilà, c'est bien ce que je voulais te dire...
C'est un peu décevant hein ?.. surtout dans l'espace.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar MB » Mercredi 17 Janvier 2007, 22:23

Ph. Ivaldi a écrit:Voilà, c'est bien ce que je voulais te dire...
C'est un peu décevant hein ?.. surtout dans l'espace.


Oui en effet.
Je ne m'attendais pas à ce genre de comportement. Bizarre. :?
A signaler peut-être.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar Ph. Ivaldi » Mercredi 17 Janvier 2007, 22:28

MB a écrit:A signaler peut-être.


J'y vais de ce pas...
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Messagepar P.Fradin » Mercredi 17 Janvier 2007, 23:03

Bonsoir,

Je viens de faire un test avec pstricks, j'avais une figure (ci-dessous) pour illustrer un théorème vu sur un autre forum (théorème des belges je crois), je repris le fichier pstricks pondu par texgraph pour ajouter à la main la transparence (et un peu de gradient), j'ai mis le label $F_1$ avant l'ellipse transparente, et le label $F_2$ après, on voit effectivement la différence (je n'ai pas essayé avec pgf).
Fichiers joints
belges.png
(46.9 Kio) Téléchargé 395 fois
P.Fradin
 

Messagepar rebouxo » Jeudi 18 Janvier 2007, 00:00

Heu, je suis sur le c. Y a pas à dire TeXgraph c'est bien.

Depuis que j'utilise TeXgraph, les cours sont mieux. TeXgraph parce que tu le vaux bien. :D :D :D :D

Je vais me reconvertir en publicitaire.

Olivier
rebouxo
Modérateur
 
Messages: 6896
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Jeudi 18 Janvier 2007, 00:08

En effet, le résultat sous pstricks est plus logique.
Peut être que ce point sera bientôt réglé sous Asymptote. De plus, le développeur aurait aussi pu laisser la possibilité de définir l'opacité sur les labels, même si à priori ça n'est pas très utile.
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Messagepar MB » Jeudi 18 Janvier 2007, 00:19

Ph. Ivaldi a écrit:
MB a écrit:A signaler peut-être.


J'y vais de ce pas...


C'est bizarre ce que tu as demandé.
Ca ne correspond pas à ce que j'obtenais (vu que j'utilisais déjà la version 2.54 de GS).
Mais ça paraissait plutôt normal que le label soit grisé non ? (puisqu'il se trouve sous une surface grisée (si j'ai bien compris ton code))
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: 6872
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

PrécédenteSuivante

Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot] et 2 invités