![\foreach 和 \def 问题](https://linux22.com/image/414120/%5Cforeach%20%E5%92%8C%20%5Cdef%20%E9%97%AE%E9%A2%98.png)
我一直在尝试使用 tikz-3dplot 制作 3d 形式的 tikzpicture,它由一组围绕 \pm z 轴的嵌套圆锥体组成。
有一个参数可以控制整个事情,\pm z 坐标、锥角和边的长度都取决于这个参数。
我正在尝试获取一个输入参数的总体图表,仅此而已。
我一直试图使用 \foreach 来做到这一点,但毫无进展 - 我不是一个直观的编码员 - 这非常令人沮丧。
关于如何进行有什么建议吗?
我想要做的一个例子(在 POVRay 中制作,长度和角度硬连线)是
\documentclass{article}
\usepackage{tikz,tikz-3dplot}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}
\def \l {1}
\pgfmathsetmacro{\L}{sqrt(\l*(\l+1))}
\begin{axis}[view={45}{45},
axis lines=center,
axis on top,
xlabel=$x$,
ylabel=$y$,
zlabel=$z$,
no marks,
xmin=-\l-1, xmax=\l+1,
ymin=-\l-1, ymax=\l+1,
zmin=-\l-1, zmax=\l+1,
]
\foreach \m in {-\l,...,\l}
\addplot3 [no markers,samples=51, domain=0:2*pi,variable=\t]
({\L*(acos(\m/\L))*cos(\t r)},{\L*(acos(\m/\L)*sin(\t r)},\m);
\end{axis}
\end{tikzpicture}
\end{document}