我正在尝试在这个表面的顶部画一条线(就像红色的线,但在表面的顶部)。代码如下:
\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}