我有两个 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}
我现在的问题是:既然它们是通过极坐标或参数定义的,我该如何自动绘制这两个图的轮廓?抛物面的x
和y
轮廓只是硬编码的。
我正在寻找(如果有的话)一种自动创建轮廓的方法,而不关心它使用的是什么坐标。有点像第 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
在轴上的投影并绘制其轮廓。