旋转曲面

旋转曲面

在此处输入图片描述如何使用旋转曲面 tikz 或 pgfplots 进行绘图?

\documentclass{article}
\usepackage{tikz,pgfplots}

\begin{document}
\begin{tikzpicture}

\end{tikzpicture}
\end{document}

我无法重现这样的表面。有人能帮助我吗? 在此处输入图片描述

答案1

在下面的图中,我给出了两个演示:一个是绕 y 轴旋转的表面,另一个是绕 x 轴旋转的表面

主要技巧是使用正弦和余弦函数适当地参数化表面。

f(t)当你绕 y 轴旋转函数时,你让

x(t,s) = t*cos(s)
y(t,s) = t*sin(s)
z(t,s) = f(t)

如果你想f(t)绕 x 轴旋转函数,那么你可以让

x(t,s) = t
y(t,s) = f(t)*cos(s)
z(t,s) = f(t)*sin(s)

通常s会在间隔内,您可以根据需要[0,2\pi]选择间隔。t

截屏

\documentclass{article}

\usepackage{pgfplots}

\begin{document}

% rotated around the y-axis
\begin{tikzpicture}
 \begin{axis}[view={60}{30}]
  \addplot3[surf,shader=flat,
  samples=20,
  domain=1:2,y domain=0:2*pi,
  z buffer=sort]
  ({x * cos(deg(y))}, {x * sin(deg(y))}, {1/x});
 \end{axis}
\end{tikzpicture}

% rotated around the x-axis
\begin{tikzpicture}
 \begin{axis}[view={60}{30}]
  \addplot3[surf,shader=flat,
  samples=20,
  domain=1:2,y domain=0:2*pi,
  z buffer=sort]
  (x,{(1/x) * cos(deg(y))}, {(1/x) * sin(deg(y))});
 \end{axis}
\end{tikzpicture}

\end{document}

按照问题编辑

在此处输入图片描述

\begin{tikzpicture}
 \begin{axis}[view={60}{30}]
  \addplot3[surf,shader=flat,
  samples=20,
  domain=0:2*pi,y domain=0:2*pi,
  z buffer=sort]
  ({x * cos(deg(y))}, {x * sin(deg(y))}, {cos(deg(x))});
 \end{axis}
\end{tikzpicture}

相关内容