2

DISCLAIMER: this seems like a bug. If you know where I should post this (message board, forum, bug tracker...) please let me know.

I have a relatively simple image consisting of 2 parametric 3d plots which are drawn in a rotated coordinate system.

\pstThreeDCoor[Beta=15,Alpha=80]%
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](0,90)(-1,3){
u arctan 180 add 3.141592 mul 180 div t cos mul
u arctan 180 add 3.141592 mul 180 div t sin mul
u neg 2 add
}%
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](-1,3)(0,90){
t arctan 180 add 3.141592 mul 180 div u cos mul
t arctan 180 add 3.141592 mul 180 div u sin mul
t neg 2 add
}%
\psset{dotstyle=*,dotscale=2,DrawCoor=true}%
\pstThreeDDot(2.356,0.000,3)%
\pstThreeDDot(3.142,0.000,2)%
\pstThreeDDot(3.927,0.000,1)%
\pstThreeDDot(4.249,0.000,0)%
\pstThreeDDot(4.391,0.000,-1)%
\pstThreeDDot(2.177,0.902,3)%
\pstThreeDDot(2.902,1.202,2)%
\pstThreeDDot(3.628,1.503,1)%
\pstThreeDDot(3.925,1.626,0)%
\pstThreeDDot(4.056,1.680,-1)%
\pstThreeDDot(1.666,1.666,3)%
% shortened for brevity

I wanted to add a dot on each node of the wireframe so I used LO Calc to pull out the coordinates of every dot. When I add the dots (pstThreeDDot) the coordinate system transformation (Alpha, Beta) is reset which offsets all the dots as seen in the following capture

dot matrix offseted to original 3d coords away from wireframe

I tried to reorder each part only to find out that the pstThreeDDots cause a reset of the coordinate system and are completely immune to it

1
\documentclass{scrartcl}
\usepackage{pst-3dplot,pst-math}
\begin{document}

\psset{Beta=15,Alpha=80}
\begin{pspicture}(-3,-3)(3,3)
\pstThreeDCoor[xMax=7,yMax=5]
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](0,90)(-1,3){
    u ATAN Pi add t cos mul
    u ATAN Pi add t sin mul
    u neg 2 add
}%
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](-1,3)(0,90){
    t ATAN Pi add u cos mul
    t ATAN Pi add u sin mul
    t neg 2 add
}%
\psset{dotstyle=*,dotscale=2,drawCoor=true}%
\pstThreeDDot(2.356,0.000,3)
\pstThreeDDot(3.142,0.000,2)
\pstThreeDDot(3.927,0.000,1)
\pstThreeDDot(4.249,0.000,0)
\pstThreeDDot(4.391,0.000,-1)
\pstThreeDDot(2.177,0.902,3)
\pstThreeDDot(2.902,1.202,2)
\pstThreeDDot(3.628,1.503,1)
\pstThreeDDot(3.925,1.626,0)
\pstThreeDDot(4.056,1.680,-1)
\pstThreeDDot(1.666,1.666,3)
% shortened for brevity 
\end{pspicture}

\begin{pspicture}(-3,-3)(3,3)
\pstThreeDCoor[xMax=7,yMax=5]
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](0,90)(-1,3){
    u ATAN Pi add t cos mul
    u ATAN Pi add t sin mul
    u neg 2 add
}%
\parametricplotThreeD[plotstyle=curve,yPlotpoints=5](-1,3)(0,90){
    t ATAN Pi add u cos mul
    t ATAN Pi add u sin mul
    t neg 2 add
}%
\parametricplotThreeD[plotstyle=dots,dotscale=2,drawCoor,
  xPlotpoints=5,yPlotpoints=5](0,90)(-1,3){
    u ATAN Pi add t cos mul
    u ATAN Pi add t sin mul
    u neg 2 add
}%
\end{pspicture}
\end{document}

enter image description here

1

I have found a simple workaround which is to psset it before doing anything

\psset{Beta=15,Alpha=80}%

I used to think that setting these values in pstThreeDCoor was enough to make it affect al subsequent elements in the current environment. Alas, it's not true for pstThreeDDots

I'm still curious as to why this behaviour exists, and if it is a bug and there is a bug tracker please let me know

EDIT

the mailing list can be found at mailto:pstricks@tug.org

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.