我想生成几个实体,一个在另一个里面。我知道我可以这样做,pst-solides3d
因为它是文档中的第一张图片。我的目的是在另一个椭圆体内创建一个椭圆体,这真的很简单
\documentclass{minimal}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}(-5,-4)(5,6)
\psset[pst-solides3d]{viewpoint=20 20 -10 rtp2xyz,Decran=15,lightsrc=viewpoint}
\defFunction{esfera2}(u,v)
{u cos v sin mul 5 mul}
{u sin v sin mul 4 mul}
{v cos 3 mul}
\defFunction{esfera1}(u,v)
{u cos v sin mul 3 mul}
{u sin v sin mul 2 mul}
{v cos 1 mul}
\psSolid[
object=surfaceparametree,
base=0 180 0 180,
incolor=red,
function=esfera1,
linewidth=0.5\pslinewidth,
ngrid=40
]%
\psSolid[
object=surfaceparametree,
base=0 180 0 180,
incolor=white,
opacity=0.5,
function=esfera2,
linewidth=0.5\pslinewidth,
ngrid=40
]%
\end{pspicture}
\end{document}
我的代码产生以下结果
但我的目标是让它看起来像下面的图片(如果你还没有看到的话)
我认为部分问题可能是我的实体是参数化曲面。有什么想法吗?
答案1
您必须构建一个融合对象(收集所有多边形表面),当然,还要旋转该对象以查看内部:
\documentclass{minimal}
\usepackage{pst-solides3d}
\begin{document}
\begin{pspicture}[solidmemory](-5,-4)(5,6)
\psset{viewpoint=20 -20 10 rtp2xyz,Decran=15,lightsrc=viewpoint,
linewidth=0.1pt,action=none}
\defFunction{esfera2}(u,v)
{u cos v sin mul 5 mul}
{u sin v sin mul 4 mul}
{v cos 3 mul}
\defFunction{esfera1}(u,v)
{u cos v sin mul 3 mul}
{u sin v sin mul 2 mul}
{v cos 1 mul}
\psSolid[
object=surfaceparametree,
base=0 180 0 180,
incolor=red,
function=esfera1,
ngrid=20,name=esfera1
]%
\psSolid[
object=surfaceparametree,
base=0 180 0 180,
incolor=white,
function=esfera2,
ngrid=40,name=esfera2
]%
\psSolid[object=fusion,base=esfera1 esfera2,action=draw**]
\end{pspicture}
\end{document}