为什么两个等效的 TikZ 数学计算结果不同?

为什么两个等效的 TikZ 数学计算结果不同?

我确信 TeX.SE 中有很多类似的帖子,但我找不到。我想知道为什么以下等式的结果不同?(cos(30)*0.8=sqrt(3)*0.4

\documentclass[12pt, margin=3mm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
%\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}  
\begin{document}
    
    \begin{tikzpicture}[scale=10]
    \coordinate (O) at (0,0,0);
    
    \tdplotsetcoord{a}{0.4*sqrt(3)}{0}{0}
    \draw[-stealth,color=blue] (O) -- (a);
    
    \tdplotsetcoord{b}{0.8*cos(deg(30))}{0}{0}
    \draw[-stealth,color=red, dashed] (O) -- (b);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

默认情况下,数学cos(deg(30))使用度数进行三角计算,因此您应该使用 而不是cos(30)。通过此修正,您的 MWE 会产生:

在此处输入图片描述

为了完整性,我还\pgfmathresult明确展示了这些计算的数值结果。以下是更新后的代码:

\documentclass[12pt, margin=3mm]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
%\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\begin{document}

cos: \pgfmathparse{0.8*cos(30)} \pgfmathresult,
sqrt: \pgfmathparse{0.4*sqrt(3)} \pgfmathresult

    \begin{tikzpicture}[scale=10]
    \coordinate (O) at (0,0,0);

    \tdplotsetcoord{a}{0.4*sqrt(3)}{0}{0}
    \draw[-stealth,color=blue] (O) -- (a);

    \tdplotsetcoord{b}{0.8*cos(30)}{0}{0}
    \draw[-stealth,color=red, dashed] (O) -- (b);
    \end{tikzpicture}
\end{document}

相关内容