Cotation d'une figure 3D.

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 !
Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Cotation d'une figure 3D.

Message non lu par Fabrice » mer. 7 mars 2012, 17:22

Bonjour,
Voici d'abord le fichier :

Code : Tout sélectionner

import solids;
size(10cm);
currentprojection=orthographic(
camera=(-14.159522337394,-17.829689974085,10.2458373934648),
up=(0.0106522416381184,0.0136689290805477,0.0385076993948493),
target=(1.77635683940025e-15,3.5527136788005e-15,5.32907051820075e-15),
zoom=0.676839362028687);
real a=4;
real r=a*sqrt(3)/3;
real h=a*sqrt(2/3);
triple Z1=(r,0,0);
triple Z2=(r*cos(2*pi/3),r*sin(2*pi/3),0);
triple Z3=(r*cos(-2*pi/3),r*sin(-2*pi/3),0);
triple Z4=(0,0,h);
triple [] center={Z1,Z2,Z3};
triple A=(0.8*a,-0.8*a,-a/2);
triple B=(0.8*a,-0.8*a,a/2+a*sqrt(2/3));
triple P=(0,0,a/2+h);
pen [] color={red,blue,yellow};
path3 p=plane((3*a,0,0),(0,3*a,0),(0,0,-a/2));
for(int k=0; k<center.length; ++k){
revolution s=sphere(center[k],a/2);
draw(surface(s),color[k]);
}
revolution s2=sphere(Z4,a/2);
draw(surface(s2),green);
draw(shift((-a,-a,0))*surface(p),palegrey);
draw(A--B,Arrows3);
draw(P--B,dashed);
label("$h$",1.1*(A+B)/2);

L'idée est que la sortie de ce fichier soit au format eps afin que la figure soit incluse dans un fichier au format tex pour une compilation avec la chaîne : latex -> dvips -> ps2pdf.
Je sais qu'il existe la routine de Christophe, mais je voudrais essayer de faire sans.
En fait, je trouve que le rendu au format eps est moyen, alors qu'il est mieux, selon moi, au format pdf.
Merci.
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Cotation d'une figure 3D.

Message non lu par maurice » mer. 7 mars 2012, 18:09

Bonsoir Fabrice,

Belle figure, mais tu n"as pas expliqué ce que tu voulais faire... ou alors je n'ai pas bien compris...
Je trouve le rendu .eps pas si mal...

maurice
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: Cotation d'une figure 3D.

Message non lu par GM » mer. 7 mars 2012, 18:25

La compilation de ce qui suit avec mon profil latexmk-latex-ps-pdf suivant donne le pdf joint.

Code : Tout sélectionner

[012]
name=LaTeXmkpspdf
program=latexmk.exe
arguments=-e, "$latex=q/latex -synctex=1 %O -shell-escape %S/", -pdfps, $fullname
showPdf=true


Code : Tout sélectionner

% !TEX TS-program = latexmkpspdf
% !TEX encoding = UTF-8

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[upright]{fourier}
\usepackage[a4paper,%
            hmargin={1cm,1cm},%
            vmargin={1cm,1cm},%
            nohead,nofoot]{geometry}
\setlength{\parindent}{0pt}

\usepackage[inline]{asymptote}
\def\asydir{asypdf} %% << permet de placer les figures asy dans un sous-dossier /asypdf
                    %% mais cela nécessite un latexmkrc adapté si utilisation de latexmk.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\begin{asy}
settings.prc=false;
import solids;
size(15cm);
currentprojection=orthographic(
camera=(-14.159522337394,-17.829689974085,10.2458373934648),
up=(0.0106522416381184,0.0136689290805477,0.0385076993948493),
target=(1.77635683940025e-15,3.5527136788005e-15,5.32907051820075e-15),
zoom=0.676839362028687);
real a=4;
real r=a*sqrt(3)/3;
real h=a*sqrt(2/3);
triple Z1=(r,0,0);
triple Z2=(r*cos(2*pi/3),r*sin(2*pi/3),0);
triple Z3=(r*cos(-2*pi/3),r*sin(-2*pi/3),0);
triple Z4=(0,0,h);
triple [] center={Z1,Z2,Z3};
triple A=(0.8*a,-0.8*a,-a/2);
triple B=(0.8*a,-0.8*a,a/2+a*sqrt(2/3));
triple P=(0,0,a/2+h);
pen [] color={red,blue,yellow};
path3 p=plane((3*a,0,0),(0,3*a,0),(0,0,-a/2));
for(int k=0; k<center.length; ++k){
revolution s=sphere(center[k],a/2);
draw(surface(s),color[k]);
}
revolution s2=sphere(Z4,a/2);
draw(surface(s2),green);
draw(shift((-a,-a,0))*surface(p),palegrey);
draw(A--B,Arrows3);
draw(P--B,dashed);
label("$h$",1.1*(A+B)/2);
\end{asy}

\end{document}


tex_2012_03_07_fabrice_code3D_v1.pdf
(161.95 Kio) Téléchargé 372 fois


La flèche n'est pas parfaite... mais à l'impression, à mon avis cela doit aller.
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 !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Cotation d'une figure 3D.

Message non lu par Fabrice » mer. 7 mars 2012, 19:47

Bonsoir Gaẽtan,
GM a écrit :La flèche n'est pas parfaite... mais à l'impression, à mon avis cela doit aller.

Je l'avais remarqué aussi et donc comment améliorer cela ? En modifiant la perspective ?
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Cotation d'une figure 3D.

Message non lu par GM » mer. 7 mars 2012, 22:01

Fabrice a écrit :Bonsoir Gaétan,
GM a écrit :La flèche n'est pas parfaite... mais à l'impression, à mon avis cela doit aller.

Je l'avais remarqué aussi et donc comment améliorer cela ? En modifiant la perspective ?


La perspective ? Non, je ne pense pas.

Augmente l'épaisseur du trait... et regarde le résultat final, à savoir le pdf (avec l'image incluse plutôt que de regarder l'eps de l'image).

La différence entre les deux méthodes de compilation est vraiment minime chez moi.
Je ne vais pas faire des essais d'impression pour toi... mais j'ai dans l'idée que tu auras du mal à faire une différence.

-------

Tu es obligé de passer par la chaine dvi/ps/pdf ?
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 !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Cotation d'une figure 3D.

Message non lu par Fabrice » jeu. 8 mars 2012, 00:44

GM a écrit :Augmente l'épaisseur du trait... et regarde le résultat final, à savoir le pdf (avec l'image incluse plutôt que de regarder l'eps de l'image).

En augmentant l'épaisseur du trait et en visionnant directement le pdf avec la figure incluse, il me semble que c'est un peu mieux.
C'est réglé !

GM a écrit :Tu es obligé de passer par la chaine dvi/ps/pdf ?


J'ai fait un fichier en utilisant : PSTricks + Asymptote + TeXgraph !!!
Depuis quelques mois, je me suis mis à PSTricks et j'aime beaucoup (notamment les flèches).
Je sais, c'est bizarre ! :D
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

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

Re: Cotation d'une figure 3D.

Message non lu par GM » jeu. 8 mars 2012, 01:44

Fabrice a écrit :j'aime beaucoup (notamment les flèches).
Je sais, c'est bizarre ! :D

Je confirme : c'est bizarre ! :lol:

Que sont ces flèches mystérieuse que l'on ne pourrait pas faire avec asymptote ou tikz (qui, selon moi, serait plus pratique que pstricks, en complément d'asymptote, pour pouvoir compiler directement avec pdflatex) ?
Je rappelle que tu te priveras de la fonction opacity sous asymptote si tu ne veux pas compiler avec pdflatex.
Je dis cela... mais en fait je ne cherche à convaincre personne de changer de langage donc bon amusement avec pstricks. ;-)
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 !

maurice
Messages : 262
Enregistré le : jeu. 25 mars 2010, 13:00
Contact :

Re: Cotation d'une figure 3D.

Message non lu par maurice » jeu. 8 mars 2012, 06:00

GM a écrit :Je rappelle que tu te priveras de la fonction opacity sous asymptote si tu ne veux pas compiler avec pdflatex.


pas si la figure est insérée dans un document latex...

Code : Tout sélectionner

import graph;
import math;

unitsize(0.5cm);

add(grid(27, 7, dotted));

path p1=(0,0)--(0,3)--(5,3)--(5,0)--cycle,
     p2=(5,0)--(5,5)--(20,5)--(20,0)--cycle,
     p3=(20,0)--(20,2)--(25,2)--(25,0)--cycle;

filldraw(p1^^p2^^p3, blue+opacity(0.5), linewidth(1pt)+red);

xaxis(0, 28, ticks=RightTicks(Step=5, step=0, end=false), linewidth(1.5pt), Arrow(3mm));

label("Petits clients", (2.5, 3), N);
label("Clients normaux", (12.5, 5), N);
label("Gros clients", (22.5, 2), N);
           
shipout(bbox(3mm,white));


avec

Code : Tout sélectionner

asy histo-a


histo-a.eps
(39.08 Kio) Téléchargé 353 fois


Et

Code : Tout sélectionner

\documentclass[10pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{graphicx}

\begin{document}

\includegraphics{histo-a}

\end{document}


avec

Code : Tout sélectionner

latex -> dvips -> ps2pdf


dvips.pdf
(7.18 Kio) Téléchargé 381 fois


Maurice
Modifié en dernier par maurice le jeu. 8 mars 2012, 20:57, modifié 1 fois.
Doc 3D
Si ça ne marche pas, essayez la version pdf

Fedora 23 -- Asymptote 2.35 -- TeXlive 2013 -- emacs et/ou gedit

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

Re: Cotation d'une figure 3D.

Message non lu par GM » jeu. 8 mars 2012, 09:15

maurice a écrit :
GM a écrit :Je rappelle que tu te priveras de la fonction opacity sous asymptote si tu ne veux pas compiler avec pdflatex.


pas si la figure est insérée dans un document latex...


Je suis surpris... et je ne comprends pas trop pourquoi... mais bien vu ! C'est mieux qu'une totale incompatibilité.
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 !

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

Re: Cotation d'une figure 3D.

Message non lu par GM » jeu. 8 mars 2012, 10:42

GM a écrit :Je suis surpris... et je ne comprends pas trop pourquoi...


Je le comprends mieux avec cela : http://ghostscript.com/doc/current/Language.htm#Additional_operators

Mais j'ai un peu de mal à comprendre... pourquoi ghostscript crée des fichiers postscript avec des commandes additionnelles (notamment .setopacityalpha pour conserver des informations de transparence) en recommandant un viewer de fichier eps (GSview) qui ne saurait pas les prendre en compte. C'est une mécanique interne trop compliquée pour moi... je zappe.
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 !

Répondre