使用参数图或极坐标绘制等高线图

使用参数图或极坐标绘制等高线图

我有两个 3D 图,一个是极坐标图,另一个是参数图。我希望​​在同一张图上也显示轮廓图。这些是当前的图:

椭圆抛物面

\begin{tikzpicture}
    \begin{axis}[view={130}{30}]
      \addplot3 [surf,z buffer=sort,samples=30,domain=0:360,y domain=0:5, data cs=polar] (x,y,y^2);
      \addplot3 [contour gnuplot={contour dir=y,draw color=red,labels=false},y filter/.expression={5},] {x^2};
      \addplot3 [contour gnuplot={contour dir=x,draw color=blue,labels=false},x filter/.expression={5},] {y^2};
  \end{axis}
\end{tikzpicture}

椭圆双曲面

\begin{tikzpicture}
  \begin{axis}[view={130}{30}]
    \addplot3[surf,domain=-1:1,y domain=0:360,z buffer=sort] ({cosh(x)*cos(y)}, {cosh(x)*sin(y)}, {sinh(x)});
  \end{axis}
\end{tikzpicture}

我现在的问题是:既然它们是通过极坐标或参数定义的,我该如何自动绘制这两个图的轮廓?抛物面的xy轮廓只是硬编码的。

我正在寻找(如果有的话)一种自动创建轮廓的方法,而不关心它使用的是什么坐标。有点像第 156 页的示例这里

我也设法得到了类似的东西 第二部分 添加以下行:

\addplot3 [contour gnuplot={contour dir=z,draw color=black,labels=false},z filter/.expression={25},] {y^2+x^2};

但解决方案似乎不是最佳的,因为我必须手动知道该部分。 有办法实现这一点吗?


编辑 1:我可能应该澄清我的需求。假设我有一个f要绘制的函数。我可以使用其笛卡尔公式、一些参数化或使用极坐标。无论哪种方式,都应该实现相同的结果。在第一种情况下,借助查找轮廓contour gnuplot非常容易,我只需输入原始函数即可。

但是,如果我有f参数形式或使用极坐标的形式,我必须已经知道轮廓方程才能绘制它们。有没有办法概括这个问题,即对于任何给定f形式的方程,我都能绘制轮廓?

基本上,我想要得到函数f在轴上的投影并绘制其轮廓。

相关内容