我确信 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}