使用 pst solides3d 渲染 3/4 圆锥体的问题

使用 pst solides3d 渲染 3/4 圆锥体的问题

我试图用 pst solides3d 用两个平面切割圆锥体来获得 3/4 圆锥体,但遇到了很多麻烦......我尝试了 4 种方法,结果差别很大。

这些方法都失败了,我不知道为什么:

  1. 根据函数将整个圆锥体切成两半,然后将其中一半切成四分之一。我总是这样会出现错误,我尝试了多种变化,但无法让它工作。

  2. 将预定义的两半融合在一起conecreux,或者像尝试 #4 那样将它们切成两次。同样的事情。

哦,万一我更新了 MiKTeX 安装,同步并刷新了每个包,它应该是最新的。(顺便说一下,使用 XeLaTeX)

以下是我部分成功的尝试:

  1. 根据函数将整个圆锥的两半融合在一起。效果还不错,但看起来不太好,下半部分有一个我无法去除的面(为什么只在下半部分?我不知道),甚至叠加效果也不是很好。

    几乎完成了,但还没有完成

  2. 使用预定义的圆锥体,将其切成两半,然后切成四分之一,只画出一半和四分之一。这是一个糟糕的解决方案,因为必须对圆锥体的每个上部和下部进行此操作,即使有rm=0空心选项,也总会剩下一个面(毕竟,它是基于实心圆锥的……)

    唉……我们怎样才能除去那些面孔呢?

#3 和 #4 的 MWE:

\documentclass{article}
\usepackage{textcomp}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\usepackage{pst-solides3d}
\begin{document}
\psset{viewpoint=50 30 20,Decran=40}
\psset{lightsrc=viewpoint}
\begin{pspicture}(-4,-4)(4,4) 
\psset{solidmemory}
\defFunction[algebraic]{G}(t)
{3*cos(t)}
{3*sin(t)}
{-3}
\psSolid[object=cone,name=entier,function=G,range=-3.46 3,ngrid=10 40, origine=0 0 0,plansepare={[1 0 0 0]},action=none]
\psSolid[object=load,load=entier1,rm=0,hollow,action=none]
\psSolid[object=cone,name=second,function=G,range=-3.46 3,ngrid=10 40, origine=0 0 0,plansepare={[0 1 0 0]},action=none]
\psSolid[object=load,load=second1,rm=0,hollow,action=none]
\psSolid[object=fusion, base=entier1 second1,linewidth=0.01,action=draw**]
\composeSolid
\end{pspicture}

\begin{pspicture}(-4,-4)(4,4) 
\psset{solidmemory}
\psSolid[object=cone,name=A,ngrid=10 40,h=4,r=3,RotY=-180,origine=0 0 0,plansepare={[0 1 0 0]},action=none]
\psSolid[object=load,load=A1,linewidth=0.01,rm=0,hollow,action=draw**]
\psSolid[object=load,load=A0,name=B,plansepare={[1 0 0 0]},action=none]
\psSolid[object=load,load=B1,linewidth=0.01,rm=0,hollow,action=draw**]
\psSolid[object=cone,name=C,ngrid=10 40,h=4,r=3,origine=0 0 0,plansepare={[0 1 0 0]},action=none]
\psSolid[object=load,load=C1,rm=0,hollow,linewidth=0.01,action=draw**](0,0,-8)
\psSolid[object=load,load=C0,name=D,plansepare={[1 0 0 0]},action=none]
\psSolid[object=load,load=D1,rm=0,hollow,linewidth=0.01,action=draw**](0,0,-8)
\end{pspicture}
\end{document}

答案1

\documentclass{article}
\usepackage{pst-solides3d,pst-math}
\begin{document}
\psset{viewpoint=50 0 10 rtp2xyz,Decran=40,lightsrc=viewpoint,
        fillcolor=red!30,incolor=green!30,action=draw**}
\begin{pspicture}(-4,-4)(4,4) 
\defFunction{cone}(u,v){u v Cos mul}{u v Sin mul}{u}
\psSolid[object=surfaceparametree,function=cone,
    base=-3 0.1 0 1.5 pi mul,ngrid=9 30,RotZ=180]%% 0.1 -> rounding errors
\psSolid[object=surfaceparametree,function=cone,
    base=0.01 3 0 1.5 pi mul,ngrid=9 20]%% 0.001 r. e.
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容