编辑

编辑

免责声明:这看起来像是一个错误。如果您知道我应该在哪里发布此信息(留言板、论坛、错误跟踪器……),请告诉我。

我有一个相对简单的图像,由在旋转坐标系中绘制的2个参数三维图组成。

\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

我想在线框的每个节点上添加一个点,因此我使用 LO Calc 提取每个点的坐标。当我添加点 ( pstThreeDDot) 时,坐标系变换 ( Alpha, Beta) 被重置,这会使所有点发生偏移,如以下捕获所示

点阵偏移到远离线框的原始 3d 坐标

我尝试重新排序每个部分,结果发现 spstThreeDDot会导致坐标系重置,并且完全不受其影响

答案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}

在此处输入图片描述

答案2

我找到了一个简单的解决方法,就是psset在做任何事情之前先做这件事

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

我曾经认为设置这些值pstThreeDCoor足以影响当前环境中的所有后续元素。可惜的是,对于pstThreeDDots来说,情况并非如此

我仍然很好奇为什么会出现这种行为,如果这是一个错误,并且有一个错误跟踪器,请告诉我

编辑

邮件列表可以在以下网址找到: 邮箱:[电子邮件保护]

相关内容