我正在尝试创建一个图像,显示(例如)标准圆柱体 (\cos(v),\sin(v),u) 位于平面 z=0 和 z+y=5 之间的部分。生成圆柱体本身不是问题,但我需要将 u 的边界设置为从 0 到 5-\sin(v),而 pstricks 似乎不喜欢这样做;它给了我一个无效参数错误。有没有我遗漏的简单解决方法?
编辑:根据要求,我现在正在尝试,感谢 Herbert。此时我没有收到任何错误,但它在编译过程中无限期挂起:
\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}(-10,-10)(10,15)
\psset{
unit=1.0,
Decran=50,
viewpoint=15 55 35 rtp2xyz,
lightsrc=20 60 20 rtp2xyz,
ngrid=50 50,
grid,
resolution=720
}
\defFunction[algebraic]{cylinder}(u,v){cos(v)}{sin(v)}{u}
\psSolid[object=surfaceparametree,
base=0 2 pi pi neg,
function=cylinder,
incolor=red!30,
fillcolor=red!30,
opacity=0.4,
plansepare={[0 0 1 -1]},
name=partiescylindre,
]
\axesIIID(0,0,0)(2,2,3)
\end{pspicture}
\end{document}
答案1
不知道你是否正在寻找这样的东西:
\documentclass[pstricks]{standalone}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}(-6,-5)(6,8)
\psset{lightsrc=viewpoint,viewpoint=100 30 40 rtp2xyz,Decran=100}
\psSolid[object=grille,base=-4 4 -4 4,ngrid=8](0,0,-1)
\defFunction[algebraic]{G9}(t){1*cos(t)}{1*sin(t)}{1*sin(5*t)}
\psSolid[object=cylindre,range=0 6.28,h=5,function=G9,axe=0 0 1,
incolor=green!50,fillcolor=yellow!50,linewidth=0.01,ngrid=10 72](0,-3,0)
\psSolid[object=cylindre,r=1,h=5,incolor=green!50,fillcolor=yellow!50,
ngrid=5 36](0,3,0)
\psSolid[object=plan,definition=equation,opacity=0.5,args={[0 1 1 -5] 180},
planmarks,plangrid,base=-2 2 -2 2,showBase]
\psSolid[object=cylindre,range=0 6.28,h=5,function=G9,axe=0 0 1,
incolor=green!50,fillcolor=yellow!50,plansepare={[0 1 1 -5]},
name=partiescylindre,
linewidth=0.01,ngrid=10 72]
\end{pspicture}
\end{document}