使用 \psSolid 绘制带有线条的垂直表面

使用 \psSolid 绘制带有线条的垂直表面

我正在尝试在这个表面的顶部画一条线(就像红色的线,但在表面的顶部)。代码如下:

\documentclass[a4paper,pstricks,11pt]{report}
\usepackage{amssymb}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage[usenames]{color}
\usepackage{pst-solides3d}

\begin{document}
\begin{pspicture}(-2,-3)(4,6.5)
\psset{unit=1.0cm,viewpoint=50 17 20 rtp2xyz,lightsrc=viewpoint}
\psset{opacity=0.7,grid}
\pstVerb{
/mytransform {
3 dict begin
   /z exch def
   /y exch def
   /x exch def
   z 2 lt {
      x y z
   } {
      x y x y add
      z min
   } ifelse
   %
end
} def
}
\defFunction[algebraic]{cyl}(u,v){3*cos(v)}{3*sin(v)}{u}
\psSolid[object=surfaceparametree,base=0 7 0 pi 2 div,ngrid=20 25,incolor=orange!70,linewidth=0,function=cyl,transform=mytransform,name=cyl,action=none]
\psSolid[object=fusion,base=cyl,action=draw**]
\axesIIID[showOrigin=false,linewidth=1.5pt,arrowinset=0,arrows=->,arrowscale=1.5,labelsep=15pt](3,3,2.83)(6,5,6)
\defFunction[algebraic]{line}(t){3*cos(t)}{3*sin(t)}{0}
\psSolid[object=courbe,range=0 1.570796327,linewidth=1.5pt,linecolor=red,function=line,r=0,action=draw]
\end{pspicture}
\end{document}

在此处输入图片描述

答案1

\documentclass{minimal}
\usepackage{pst-solides3d}
\begin{document}

\begin{pspicture}(-2,-3)(4,6.5)
\psset{unit=1.0cm,viewpoint=50 17 20 rtp2xyz,lightsrc=viewpoint}
\psset{opacity=0.7,grid}
\pstVerb{
    /mytransform {
        3 dict begin
        /z exch def
        /y exch def
        /x exch def
        z 2 lt {
            x y z
        } {
            x y x y add
            z min
        } ifelse
        %
        end
    } def
}
\defFunction[algebraic]{cyl}(u,v){3*cos(v)}{3*sin(v)}{u}
\psSolid[object=surfaceparametree,base=0 7 0 pi 2 div,
         ngrid=20 25,incolor=orange!70,linewidth=0,function=cyl,
         transform=mytransform,name=cyl,action=none]
\psSolid[object=fusion,base=cyl,action=draw**]
\axesIIID[showOrigin=false,linewidth=1.5pt,arrowinset=0,arrows=->,arrowscale=1.5,labelsep=15pt](3,3,2.83)(6,5,6)
\defFunction[algebraic]{line}(t){3*cos(t)}{3*sin(t)}{0}
\psSolid[object=courbe,range=0 1.570796327,linewidth=1.5pt,linecolor=red,
         function=line,r=0,action=draw]
\defFunction[algebraic]{lineB}(t){3*cos(t)}{3*sin(t)}{3+2.5*cos(t)*sin(t)}
\psSolid[object=courbe,range=0 1.570796327,linewidth=1.5pt,linecolor=blue,
function=lineB,r=0,action=draw]
\end{pspicture} 

\end{document}

在此处输入图片描述

相关内容