使用 PSTricks 绘制轮廓图

使用 PSTricks 绘制轮廓图

我想使用 PSTricks 功能来获取 3D 表面的轮廓图(更准确地说,对应于从 R^2 到 R 的函数 z = f(x,y))。据我所知,没有包含此功能的软件包,因此我求助于使用该pst-solides3d软件包来绘制表面,并使用适当的颜色范围对 z 值进行编码,并选择方位角设置为 90(六十进制度)的视点。在某些情况下,这种方法有效(我使用一些三角函数获得了良好的结果)。在其他情况下,结果完全是错误的:我尝试使用抛物面 z = x^2 + y^2,将绘图限制在第一个八分圆和 (x,y) \leq (1,1),但我获得的方位角设置为 90 度的视图是有缺陷的。以下是抛物面的 MWE:

\documentclass{memoir}

\usepackage[pdfcrop={--hires}]{auto-pst-pdf}
\usepackage{xcolor,pstricks,pst-solides3d}

\begin{document}
\pagestyle{empty}
\psset{unit=3cm}
\begin{pspicture}(-2,-2)(2,2)    
\psset{lightsrc=viewpoint,  
viewpoint=60 0 90 rtp2xyz,
Decran=60}
\psSurface[linewidth=0.01pt,
ngrid=0.01 0.01, 
tablez=0 0.01 2 {} for,
zcolor=0.5 0,
grid](0,0)(1,1){x x mul y y mul add}
\end{pspicture}
\end{document}

请注意,图的边界实际上不是正方形(从我选择的视角来看它应该是正方形),因为它在与点 (1,1,0) 对应的角附近弯曲。这就是我说该图“有缺陷”的原因。

我知道有两个 Perl 脚本可用http://tug.org/PSTricks/main.cgi?file=pst-plot/3D/contour旨在提供我正在寻找的功能,但两个脚本链接实际上指向同一个脚本,即MakeData.pl。此外,没有迹象表明如何处理它们。我使用的是 MikTeX 2.9 发行版;脚本是否要保存在miktex/bin保存其他脚本的文件夹中?有人能提供有关如何使用这些脚本的进一步提示吗?

另一方面,有谁知道使用基于 PSTricks 的技术获取轮廓图的不同方法吗?

答案1

环境的坐标pspicture是二维的。从 z 轴看,最低的 y 值为 -1,最高的 y 值为 0。从 z 轴看,透视从 xy 平面来看,我们看不到真正的正方形。

\documentclass{memoir}

\usepackage[pdfcrop={--hires}]{auto-pst-pdf}
\usepackage{pst-solides3d}

\begin{document}
\pagestyle{empty}
\psset{unit=3cm}
\psframebox{%
\begin{pspicture}(0,-1)(1,0)    
\psset{lightsrc=viewpoint,viewpoint=60 0 90 rtp2xyz,Decran=60}
\psSurface[linewidth=0.01pt,
   ngrid=0.01 0.01, 
   tablez=0 0.01 2 {} for,
   zcolor=0.5 0,
   grid,
   algebraic](0,0)(1,1){x^2+y^2}
\end{pspicture}}
%
\psframebox{%
\begin{pspicture}(0,-1)(1,0)    
\psset{lightsrc=viewpoint,viewpoint=60 10 80 rtp2xyz,Decran=60}
\psSurface[linewidth=0.01pt,
   ngrid=0.01 0.01, 
   tablez=0 0.01 2 {} for,
   zcolor=0.5 0,
   grid,
   algebraic](0,0)(1,1){x^2+y^2}
\end{pspicture}}
\end{document}

在此处输入图片描述

相关内容