Bonjour.
Le problème vient de la construction de l'arbre, qui déplace l'origine sur un des bords de la «boundingbox» (je n'ai jamais su comment dire ceci en français : boîte englobante ?), suivant le sens dans lequel l'arbre est dessiné (ici donc, à droite).
Dans le code ci-dessous, j'ai fait quatre graphiques :
- le premier fait apparaître le problème : pour l'arbre, showbbox montre la boîte, psdots(0,0) montre la position de l'origine après la construction de l'arbre et le psline est là pour bien voir ;
- le deuxième montre qu'il n'y a pas de problème si l'on commence par les deux nœuds ;
- le troisième est un essai de déplacement de l'origine, prévu par PSTricks, mais valable uniquement pour les objets graphiques (et les nœuds n'en font pas partie) ;
- le dernier montre comment on peut résoudre ton problème, en utilisant une translation par rapport à un nœud origine fixé dès le départ.
Voici le code à compiler :
Code : Tout sélectionner
\documentclass[11pt,svgnames]{report}
\usepackage[a4paper,margin=1cm]{geometry}
\usepackage{etex}
\usepackage[utf8]{inputenc}
\usepackage[upright]{fourier}
\usepackage{pstricks,pst-tree}
\usepackage{enumerate}
\usepackage[frenchb]{babel}
\pagestyle{empty}
\begin{document}
\begin{enumerate}[\bfseries 1.]
\item Illustration de la position de l'origine après la construction de l'arbre.
\begin{center}
\psset{xunit=1cm,yunit=1cm,showbbox=true}
\begin{pspicture}[showgrid=true](-2,-2)(8,8)
\SpecialCoor
\psset{treemode=R}
\pstree{\Tr{}}{%
\pstree{\Tcircle{B}}{%
\pstree{\Tcircle{B}}{%
\Tcircle{B}
\Tcircle{R}
\Tcircle{\rnode{A}{J}}}
\Tcircle{R}
\Tcircle{\rnode{B}{J}}}
\Tcircle{R}
\Tcircle{\rnode{C}{J}}}
\pcline[nodesepA=1.5cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](A)(A|C)%
\pcline[nodesepA=0.75cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](B)(B|C)%
\psdots (0,0) \psline (0,0)(5,5)
\end{pspicture}
\end{center}
\item Une solution : placer les n\oe uds avant de construire l'arbre, ne rien tracer après l'arbre.
\begin{center}
\psset{xunit=1cm,yunit=1cm}
\begin{pspicture}[showgrid=true](-2,-2)(8,8)
\SpecialCoor
\pnode(4,-1){D}
\pnode(4,-2){E}
\psline[linewidth=2pt,linecolor=red](D)(E)
\psset{treemode=R}
\pstree{\Tr{}}{%
\pstree{\Tcircle{B}}{%
\pstree{\Tcircle{B}}{%
\Tcircle{B}
\Tcircle{R}
\Tcircle{\rnode{A}{J}}}
\Tcircle{R}
\Tcircle{\rnode{B}{J}}}
\Tcircle{R}
\Tcircle{\rnode{C}{J}}}
\pcline[nodesepA=1.5cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](A)(A|C)%
\pcline[nodesepA=0.75cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](B)(B|C)%
\end{pspicture}
\end{center}
\newpage
\item Un essai en replaçant l'origine en $(0 ; 0)$.
\begin{center}
\psset{xunit=1cm,yunit=1cm}
\begin{pspicture}[showgrid=true](-2,-2)(8,8)
\SpecialCoor
\pnode(0,0){O}
\psset{treemode=R}
\pstree{\Tr{}}{%
\pstree{\Tcircle{B}}{%
\pstree{\Tcircle{B}}{%
\Tcircle{B}
\Tcircle{R}
\Tcircle{\rnode{A}{J}}}
\Tcircle{R}
\Tcircle{\rnode{B}{J}}}
\Tcircle{R}
\Tcircle{\rnode{C}{J}}}
\pcline[nodesepA=1.5cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](A)(A|C)%
\pcline[nodesepA=0.75cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](B)(B|C)%
\psset{origin={O}}
\psdots (0,0) \psline (0,0)(5,5) \psline (4,-1)(4,-2)
\pnode(4,-1){D}
\pnode(4,-2){E}
\psline[linewidth=2pt,linecolor=red](D)(E)
\end{pspicture}
\end{center}
Tout se passe bien pour les objets graphiques (psline, psdots, etc\ldots) ; mais pas pour les n\oe uds, qui ne sont pas considérés comme des objets graphiques, et donc pas affectés par le changement d'origine.
\item Dernier graphique, où l'on obtient (enfin) le comportement attendu.
\begin{center}
\psset{xunit=1cm,yunit=1cm}
\begin{pspicture}[showgrid=true](-2,-2)(8,8)
\SpecialCoor
\pnode(0,0){O}
\psset{treemode=R}
\pstree{\Tr{}}{%
\pstree{\Tcircle{B}}{%
\pstree{\Tcircle{B}}{%
\Tcircle{B}
\Tcircle{R}
\Tcircle{\rnode{A}{J}}}
\Tcircle{R}
\Tcircle{\rnode{B}{J}}}
\Tcircle{R}
\Tcircle{\rnode{C}{J}}}
\pcline[nodesepA=1.5cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](A)(A|C)%
\pcline[nodesepA=0.75cm,nodesepB=0.75cm,linewidth=1pt,linestyle=dotted](B)(B|C)%
\pnode([nodesep=4,offset=-1]O){D}
\pnode([nodesep=4,offset=-2]O){E}
\psline[linewidth=2pt,linecolor=red](D)(E)
\end{pspicture}
\end{center}
L'instruction \verb+ ([nodesep=4,offset=-1]O) + signifie que le n\oe ud D est l'image du n\oe ud O par la translation de vecteur $(4 ; -1)$.
\end{enumerate}
\end{document}
En espérant avoir épuisé le sujet ?
djib