我正在尝试执行以下代码,其中我使用 TikZ 库计算坐标math
,然后在 TikZ 中绘制它们。
! Package pgf Error: No shape named '2*cos(60' is known.
为什么在使用数学函数定义坐标时会输出错误(在我的情况下使用sin
和cos
)? pgf 数学函数应该在 TikZ 数学库中随时可用。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}
\begin{document}
\begin{tikzpicture}
\tikzmath{
coordinate \x;
\x1=(0,0);
\x2=(1.5,0);
\x3 = (2*cos(60), 2*sin(60));
}
\draw[help lines] (0,0) grid (2,2);
\draw[->] (-0.2,0) -- (2.2,0) node [anchor=west] {$x$};
\draw[->] (0,-0.2) -- (0,2.2) node [anchor=south] {$y$};
\draw [red,thick] (\x1) -- (\x2) -- (\x3) -- cycle;
\end{tikzpicture}
\end{document}
预期绘图
答案1
我只是错过了(如果有人能解释为什么......)一些大括号围绕坐标中的数学运算。
使用普通变量时不需要这样的括号,例如,\a= 2*cos(60)
但坐标定义似乎需要。例如,\a=2*cos(60); \b=2*sin(60); \x3=(\a,\b);
在\tikzmath
环境中可以工作,但它太冗长了。
最简单的解决方案:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}
\begin{document}
\begin{tikzpicture}
\tikzmath{
coordinate \x;
\x1=(0,0);
\x2=(1.5,0);
\x3 = ({2*cos(60)}, {2*sin(60)});
}
\draw[help lines] (0,0) grid (2,2);
\draw[->] (-0.2,0) -- (2.2,0) node [anchor=west] {$x$};
\draw[->] (0,-0.2) -- (0,2.2) node [anchor=south] {$y$};
\draw [red,thick] (\x1) -- (\x2) -- (\x3) -- cycle;
\end{tikzpicture}
\end{document}