在 tikzmath 坐标中使用数学函数

在 tikzmath 坐标中使用数学函数

我正在尝试执行以下代码,其中我使用 TikZ 库计算坐标math,然后在 TikZ 中绘制它们。

! Package pgf Error: No shape named '2*cos(60' is known.为什么在使用数学函数定义坐标时会输出错误(在我的情况下使用sincos)? 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}

相关内容