Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

LaTeX PSTricks 3D. Écriture texte 3D

7 views
Skip to first unread message

Jack

unread,
Nov 8, 2009, 9:49:55 AM11/8/09
to
Bonjour,

Je commence à utiliser à utiliser pstricks 3d, je cherche une
fonction.
En effet, lorsqu'on écrit du texte à partir d'un point 3D, celui-ci se
trouve dans le plan 3D.
Je voudrais écrire du texte dans le plan 2D sur un point 3D (point
dont j'ai calculé les coordonnées 3D)

Ma question est:
existe-t-il une fonction qui a partir d'un point 3D (x,y,z), et un
angle de vue qui renvoie les coordonnées projetées en 2D (xp,yp)?
La réponse est oui, car c'est ce que fait pstricks3d, mais quelqu'un
la connait-il, et comment s'appelle-t-elle?

Un ECM sera peut-être plus parlant...
Cet ECM trace un parallélépipède projeté en 2D.
Sur cet ECM, je voudrais écrire le noms des axes (x,y,z) dans le plan
2D, actuellement le nom de ces axes est en 3D.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{pstricks,pstricks-add,pst-math,pst-xkey}
\usepackage{pst-3d}
\newcommand{\pstrectDDD}[3]
{
\begin{pspicture*}(-5,-5)(6,6)
\uput[45](0,0){\small $O$}
\psdots[dotstyle=*,linecolor=darkgray](0,0)
\ThreeDput[normal= 0 -1 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! #1 2 add 0)
\uput[0](! #1 2 add 0)
{$x$}}
\ThreeDput[normal= 0 -1 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! 0 #2 3 add)
\uput[0](! 0 #2 3 add)
{$y$}}
\ThreeDput[normal= 1 0 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! -#3 2.2 sub 0)
\uput[270](! -#3 2.2
sub 0){$z$}}
\ThreeDput[normal= 0 -1 0]( 0, -#3, 0){\psframe(-#1,-#2)
(#1,#2)}
\ThreeDput[normal= 0 -1 0]( 0, #3, 0){\psline
[linestyle=dashed,dash=4pt 4pt](-#1,-#2)(#1,-#2)
\psline
[linestyle=dashed,dash=4pt 4pt](-#1, #2)(-#1,-#2)
\psline(#1,-#2)
(#1,#2)
\psline(#1,#2)(-
#1,#2)}
\ThreeDput[normal= 1 0 0]( #1, 0, 0){\psline(-#3, #2)(#3,
#2)
\psline(-#3,-#2)(#3,-
#2)}
\ThreeDput[normal=-1 0 0](-#1, 0, 0){\psline(-#3, #2)(#3,
#2)
\psline
[linestyle=dashed,dash=4pt 4pt](-#3,-#2)(#3,-#2)}
\end{pspicture*}
}

\begin{document}
\psset{unit=0.4cm,xunit=0.4cm,yunit=0.4cm}
\psset{algebraic=true,dotstyle=*,dotsize=3pt
0,linewidth=0.8pt,arrowsize=3pt 2,arrowinset=0.25}
\pstrectDDD{4}{1}{2}
\end{document}

Jack

unread,
Nov 8, 2009, 11:59:03 AM11/8/09
to

La réponse est

Dans le préambule ajouter:
\usepackage{pst-3dplot}

Dans le code pstricks:
\pstThreeDPut(1,2,3){$x$}

% Si une des coordonnées est un paramètre, on utilise une expression
polonaise inverse postscript
\pstThreeDPut(#1 3 add,0,0){$x$}

Manuel-Luque

unread,
Nov 9, 2009, 8:05:59 AM11/9/09
to
On 8 nov, 15:49, Jack <guillaume.jacque...@gmail.com> wrote:

L'asstuce consiste à définir un "node" dans la commande 3d, la
position du point est automatiquement calculée et peut être
réemployée :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\ThreeDput[normal= 0 -1 0]( 0, 0, 0){\psline[linecolor=darkgray]{->}
(0,0)(! #1 2 add 0)

\pnode(! #1 2 add 0)
{X}} % <---le noeud est défini
\psdot(X)\uput[r](X){$x$}% <--- son utilisation pour un
affichage 2d
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Le fichier proposé devient :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{pstricks-add}


\usepackage{pst-3d}
\newcommand{\pstrectDDD}[3]
{
\begin{pspicture*}(-5,-5)(6,6)
\uput[45](0,0){\small $O$}
\psdots[dotstyle=*,linecolor=darkgray](0,0)
\ThreeDput[normal= 0 -1 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! #1 2 add 0)

\pnode(! #1 2 add 0)
{X}}
\psdot(X)\uput[r](X){$x$}%


\ThreeDput[normal= 0 -1 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! 0 #2 3 add)

\pnode(! 0 #2 3 add)
{Y}}
\psdot(Y)\uput[u](Y){$y$}%


\ThreeDput[normal= 1 0 0]( 0, 0, 0){\psline
[linecolor=darkgray]{->}(0,0)(! -#3 2.2 sub 0)

\pnode(! -#3 2.2 sub
0){Z}}
\psdot(Z)\uput[dl](Z){$z$}%


%%%%%%%%%%%%%%%%%%%%%%%%%

Manuel L.

Guillaume Jacquenot

unread,
Nov 9, 2009, 12:56:37 PM11/9/09
to

Merci pour l'info
C'est effectivement plus propre que l'utilisation d'un autre paquet...

0 new messages