![PGFplots - 围绕 z 轴旋转笛卡尔方程](https://linux22.com/image/349263/PGFplots%20-%20%E5%9B%B4%E7%BB%95%20z%20%E8%BD%B4%E6%97%8B%E8%BD%AC%E7%AC%9B%E5%8D%A1%E5%B0%94%E6%96%B9%E7%A8%8B.png)
我的问题是我想通过旋转函数来创建一个表面 围绕 z 轴在 -10 < z < 0 范围内创建一种袋状表面。
我一直在做研究这除了我的函数是笛卡尔函数而非参数函数外,解决方案是理想的。pgfplots
在这方面,手册的搜索没有找到任何有用的信息。
我的问题是,有没有办法绕轴旋转笛卡尔方程而不是极坐标或参数方程,因为我的函数很难转换成参数函数。如果有人能推荐一个看起来差不多的参数函数,那也太好了!
任何帮助都将不胜感激
答案1
据我了解,我们有一个函数
f(\z) = \z-pow(\z,3)-2
和两个参数,一个表示旋转角度,范围为 [0,360](用术语x
来称呼pgfplots
),另一个表示值,范围为 [-10,0](用术语来\z
称呼)。图的三个坐标是 xy 平面中以z 轴为中心,半径为 z 分量的圆的坐标,即y
pgfplots
f(y)
y
( {f(y)*sin(x)}, {f(y)*cos(x)}, y )
\documentclass[border=2pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}%
[declare function={ f(\z) = \z-pow(\z,3)-2; }
]
\begin{axis}
\addplot3 [
surf,
domain = 0:360,
y domain = -10:0,
samples = 50,
samples y = 20,
]
( {f(y)*sin(x)}, {f(y)*cos(x)}, y );
\end{axis}
\end{tikzpicture}
\end{document}