我对内联调用失败感到有些困惑\cos
。在下面的代码中,我使用、和执行扭曲操作\let
。\pgfmathparse
但是\pgfmathresult
,在我看来,注释行应该做完全相同的事情。相反,它失败并出现错误。我似乎遗漏了一些东西,我仍然无法很好地掌握使用 pgf 进行数学运算。
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{pgfplots}
\begin{document}
\tdplotsetmaincoords{60}{155}
\begin{tikzpicture}[scale=5,tdplot_main_coords]
\tikzstyle{grid}=[thin,color=red]
\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$};
\draw[thick,->] (0,0,0) -- (-1,0,0);
\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$};
\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$};
\foreach \a in {0, 15, 30, 45, 60, 75, 90}{
\pgfmathparse{cos(\a)};
\let\c=\pgfmathresult;
\tdplotdrawarc[grid]{(0,0,{sin(\a)})}{\c}{0}{180}{}{};
% When this line is uncommented it fails.
% \tdplotdrawarc[grid]{(0,0,{sin(\a)})}{{cos(\a)}}{0}{180}{}{};
}
\foreach \rot in {-90, -60, -30, 0, 30, 60, 90} {
\tdplotsetrotatedcoords{\rot}{90}{0};
\tdplotdrawarc[grid,tdplot_rotated_coords]{(0,0,0)}{1}{90}{180}{}{};
}
\end{tikzpicture}
\end{document}
答案1
正如 Qrrbrbirlbel 指出的那样,这是由于一个错误造成的,该错误已在网站上讨论过;这里例如。该错误应该会在下一个官方 TikZ 版本中修复。
如果您拥有最新的非 CVS 版本的 TikZ,则可以通过在有问题的行中插入两个空格来使错误消失,如下所示:
\tdplotdrawarc[grid]{(0,0,{sin(\a)} )}{{cos(\a)} }{0}{180}{}{};