TikZ/PGF三角函数引起的错误

TikZ/PGF三角函数引起的错误

我对内联调用失败感到有些困惑\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}{}{};

在此处输入图片描述

相关内容