[pstricks] pst-3dplot problem with RotX, ...

Patrice MEGRET Patrice.MEGRET at umons.ac.be
Tue Oct 20 13:44:23 CEST 2020


Dear Herbert,

I am using pst-3dplot to illustrate Cartesian basis transformation. See bottom of the mail for the full example with the problem.

So I have plotted one set of axes with:
\pstThreeDCoor[linecolor=red,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1$,nameY=$2$,nameZ=$3$]

and a second set of axes by:
\pstThreeDCoor[linecolor=blue,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1'$,nameY=$2'$,nameZ=$3'$%
RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45]

As I have not used \psset to set RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45 globally, I suppose that the coordinates are always referred to the one issued initially.
So
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=green!50!black,linewidth=2.5pt]{->}(0,0,0)(0,1,0)
always display a dot and a vector in the unrotated coordinates systems.

But if I change the order of  \pstThreeDDot{} and \pstrThreeDLine{}, the vector uses the rotated coordinates but not the dot.
Moreover, if there is a vector after the dot, then the coordinates for the vector become the initial ones.

I suspect a problem within \pstThreeDLine{} because I made also test with \pstThreeDBox[hiddenLine](0,0,0)(4,0,0)(0,6,0)(0,0,3), \pstThreeDNode{}  that use the initial coordinates.

To solve the probem, I did the following:
\psset{RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45}
\pstThreeDCoor[linecolor=blue,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1'$,nameY=$2'$,nameZ=$3'$]
\pstThreeDLine[linecolor=green!50!black,linewidth=2.5pt]{->}(0,0,0)(0,1,0)
\pstThreeDDot(1,0,0)
So that I use the new coordinates after the \psset. It it the good way, or should I use RotSet key somewhere.


Full working example:
\documentclass{report}

\usepackage{pstricks}
\usepackage{pst-3dplot}

\begin{document}

\begin{pspicture}[showgrid=false](-3,-4)(7,4.5)
\psset{unit=1,Alpha=75,Beta=30}
\pstThreeDCoor[linecolor=red,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1$,nameY=$2$,nameZ=$3$]
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=red!50!black,linewidth=2.5pt]{->}(0,0,0)(0,0,1)

\pstThreeDCoor[linecolor=blue,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1'$,nameY=$2'$,nameZ=$3'$,%
RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45]
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=green!50!black,linewidth=2.5pt]{->}(0,0,0)(0,1,0)
\pstThreeDLine[linecolor=blue!50!black,linewidth=2.5pt]{->}(0,0,0)(1,0,0)
\end{pspicture}


\begin{pspicture}[showgrid=false](-3,-4)(7,4.5)
\psset{unit=1,Alpha=75,Beta=30}
\pstThreeDCoor[linecolor=red,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1$,nameY=$2$,nameZ=$3$]
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=red!50!black,linewidth=2.5pt]{->}(0,0,0)(0,0,1)


\pstThreeDCoor[linecolor=blue,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1'$,nameY=$2'$,nameZ=$3'$,%
RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45]
\pstThreeDLine[linecolor=green!50!black,linewidth=2.5pt]{->}(0,0,0)(0,1,0)
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=blue!50!black,linewidth=2.5pt]{->}(0,0,0)(1,0,0)
\end{pspicture}



\begin{pspicture}[showgrid=false](-3,-4)(7,4.5)
\psset{unit=1,Alpha=75,Beta=30}
\pstThreeDCoor[linecolor=red,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1$,nameY=$2$,nameZ=$3$]
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=red!50!black,linewidth=2.5pt]{->}(0,0,0)(0,0,1)

\psset{RotSequence=xyz,eulerRotation=false,RotX=30,RotZ=45}
\pstThreeDCoor[linecolor=blue,xMax=7,yMax=6.5,zMax=4.5,%
nameX=$1'$,nameY=$2'$,nameZ=$3'$]
\pstThreeDLine[linecolor=green!50!black,linewidth=2.5pt]{->}(0,0,0)(0,1,0)
\pstThreeDDot(1,0,0)
\pstThreeDLine[linecolor=blue!50!black,linewidth=2.5pt]{->}(0,0,0)(1,0,0)
\end{pspicture}

\end{document}


Best regards,
Patrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/pstricks/attachments/20201020/127a278d/attachment-0001.html>


More information about the PSTricks mailing list.