如何用 TikZ 绘制 Scherk 曲面?Sherk 曲面定义为
log(cos(x)/cos(y)),其中 -pi/2 < x,y < pi/2
我尝试过这个:
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepgfplotslibrary{colormaps}
\pgfplotsset{width=10cm, compat=1.16}
\pgfplotscreatecolormap{bw}{color=(lightgray) color=(white) color=(lightgray)}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
view={60}{30},
hide axis,
colormap name =bw,
]
\addplot3[surf,shader = faceted interp,
domain=-pi/2+0.0001:pi/2-0.0001,
domain y = -pi/2+0.0001:pi/2-0.0001,
samples=20,
colormap name =bw,
samples y=20,
]
({x},
{y},
{log10(cos(deg(x))/cos(deg(y)))});
\end{axis}
\end{tikzpicture}
\end{document}
但只得到了“丑陋”的结果... 有没有办法以这种方式绘制 Sherk 表面(使用此颜色图等)?我已经以类似的方式绘制了螺旋面,并希望图片“看起来一样”(相同的颜色图和内容)...
理想的审美是:
我得到的是:
但我更希望得到类似的东西
答案1
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\pgfplotsset{colormap={CM}{color=(lightgray) color=(white) color=(lightgray)}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
view={60}{30},
hide axis,
zmin=-0.4, zmax=0.4,
trig format plots=rad,
clip=false,
]
\addplot3[
surf, shader=faceted interp,
domain=-pi/2+0.1:pi/2-0.1,
samples=20,
] ( x, y , {log10(cos(x)/cos(y))} );
\end{axis}
\end{tikzpicture}
\end{document}
编辑:相同的图,但有以下限制:domain=-pi/2+0.0001:pi/2-0.0001,
重要的不是限制,而是 z 比例。由于您没有显示任何 z 轴,因此选择zmin=-0.4, zmax=0.4
仅基于您希望绘图看起来有多“圆” - 您的原始绘图没有错。