![pst-solides3d 中是否有绘制水平曲线的功能](https://linux22.com/image/296672/pst-solides3d%20%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E7%BB%98%E5%88%B6%E6%B0%B4%E5%B9%B3%E6%9B%B2%E7%BA%BF%E7%9A%84%E5%8A%9F%E8%83%BD.png)
做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
),但可以根据需要进行调整。
欢迎任何评论