pst-solides3d 中是否有绘制水平曲线的功能

pst-solides3d 中是否有绘制水平曲线的功能

pst-solides3d 仍然有绘制水平曲线的机制吗?

我说“仍然”,是因为手册中有以下几行


与 3.0 版相比的变化

  • 压制论点tracelignedeniveau

我猜这大致可以翻译为

  • 爬山=>迹线水平曲线

那么,这是一个已停用的功能吗?它会回来吗?它在哪里如果它仍然在那里吗?与隐含情节pst-func

答案1

可以使用Div它对零除进行测试:

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

\begin{pspicture}(-3,-3)(3,3)
\psset{viewpoint=50 300 30 rtp2xyz,Decran=50,lightsrc=viewpoint}
\psSurface[
    ngrid=0.2 0.2,incolor=darkgray,linewidth=0.5\pslinewidth,
    intersectiontype=0,
    intersectionplan={ %lets make some planes from 0-1 with 0.25 step
        [0 0 1 -0.00]
        [0 0 1 -0.25]
        [0 0 1 -0.50]
        [0 0 1 -0.75]
        [0 0 1 -0.95]}, %close enough to 1
    intersectionlinewidth=1.5 1.5 1.5 1.5 1.5,
    intersectioncolor=(red)(green)(blue)(cyan)(magenta)](-3,-3)(3,3){
      x x mul y mul 2 mul 
      x 4 exp y 2 exp add  Div }
\end{pspicture}
\end{document}

在此处输入图片描述

答案2

我知道我最终会找到解决办法

该系列选项intersection~是用于追踪固体和表面上的水平曲线的有效工具。

  • intersectiontype,设置为 0 以激活
  • intersectionplan,添加以下类型的平面ax+by+cz+d=0。保留以下定义[a b c d]

作为示例,我将使用我正在工作的表面,并在上面留下水平曲线以供您欣赏

\begin{pspicture}(-3,-3)(3,3)
\psset{viewpoint=50 300 30 rtp2xyz,Decran=50,lightsrc=viewpoint}
\psSurface[
    ngrid=0.2 0.2,incolor=darkgray,linewidth=0.5\pslinewidth,
    intersectiontype=0,
    intersectionplan={ %lets make some planes from 0-1 with 0.25 step
        [0 0 1 -0.00]
        [0 0 1 -0.25]
        [0 0 1 -0.50]
        [0 0 1 -0.75]
        [0 0 1 -0.95]}, %close enough to 1
    intersectionlinewidth=1.5 1.5 1.5 1.5 1.5,
    intersectioncolor=(black)(black)(black)(black)(black)
](-3,-3)(3,3){
    /denom x 4 exp y 2 exp add def
    /numer x x mul y mul 2 mul def
    denom 0 eq {0} {numer denom div} ifelse %gotta fix that div/0
}
\end{pspicture}

我认为这会让任何想要绘制水平曲线的人感到有趣。我在这个例子中使用的平面都是水平的(z=k),但可以根据需要进行调整。

欢迎任何评论

相关内容