使用 pgfplots 在参数曲面上绘制参数标量值函数

使用 pgfplots 在参数曲面上绘制参数标量值函数

我认为这是一个相对简单的问题,但我似乎无法在任何地方找到答案。

假设我有以下一组圆柱体的参数方程:

X(s,t) = cos(s),Y(s,t) = sin(s),Z(s,t) = t

我可以使用以下代码片段进行绘图:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}

\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot3[surf, 
              samples=25, 
              z buffer = sort,
              domain = 0:2*pi, 
              y domain = 0:1]({cos(deg(x))}, {sin(deg(x)}, {y});
\end{axis}
\end{tikzpicture}

\end{document}

生成下图:

圆柱

我想将颜色阴影从当前的 z 值更改为其他参数函数,例如。w(s,t)=1+5*s^2+exp(t)我尝试过使用该declare function功能,但没有成功。这似乎应该是相当简单的事情,但事实证明它相当困难。我对 tikz/pgfplots 也相当陌生,这也许可以解释这一点。pgfplotspoint meta

谢谢!

答案1

欢迎使用 TeX-SE!我可能遗漏了一些东西,但我只是阐明了你似乎在尝试的东西,它在这里有效。

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.6}

\begin{document}
\begin{tikzpicture}[declare function={myshader(\x,\y)=cos(deg(2*\x))-0.6*sin(deg(\y));}]
  \begin{axis}
    \addplot3[surf, 
              samples=25, 
              z buffer = sort,
              domain = 0:2*pi, 
              y domain = 0:1,
              point meta={myshader(x,y)}]({cos(deg(x))}, {sin(deg(x)}, {y});
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容