Page 1 sur 2

Cotation d'une figure 3D.

Posté : mer. 7 mars 2012, 17:22
par Fabrice
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.

Re: Cotation d'une figure 3D.

Posté : mer. 7 mars 2012, 18:09
par maurice
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

Re: Cotation d'une figure 3D.

Posté : mer. 7 mars 2012, 18:25
par GM
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é 373 fois


La flèche n'est pas parfaite... mais à l'impression, à mon avis cela doit aller.

Re: Cotation d'une figure 3D.

Posté : mer. 7 mars 2012, 19:47
par Fabrice
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 ?

Re: Cotation d'une figure 3D.

Posté : mer. 7 mars 2012, 22:01
par GM
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 ?

Re: Cotation d'une figure 3D.

Posté : jeu. 8 mars 2012, 00:44
par Fabrice
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

Re: Cotation d'une figure 3D.

Posté : jeu. 8 mars 2012, 01:44
par GM
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. ;-)

Re: Cotation d'une figure 3D.

Posté : jeu. 8 mars 2012, 06:00
par maurice
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

Re: Cotation d'une figure 3D.

Posté : jeu. 8 mars 2012, 09:15
par GM
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é.

Re: Cotation d'une figure 3D.

Posté : jeu. 8 mars 2012, 10:42
par GM
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.