我想打印两条线之间的角度值(以度为单位)。打印时一切正常整体线与线之间的角度:
\documentclass{standalone}
\usepackage{tikz} \usetikzlibrary{angles,quotes}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,-1);
\filldraw[fill=yellow]
(A)--(B)--(C)--cycle
pic[draw,
"\pgfmathanglebetweenlines{\pgfpoint{2}{-1}}{\pgfpoint{0}{0}}
{\pgfpoint{0}{0}}{\pgfpoint{2}{5}}
$\pgfmathresult$",
angle eccentricity=2]
{angle = C--A--B};
\end{tikzpicture}
\end{document}
我得到了这个:
这很好。
我想打印角度只有两位小数,因此我包含了该功能\pgfmathprintnumber
,但收到了一条错误消息。
我不知道如何修复它,主要是因为我不完全理解我在做什么。我给你看代码:
\documentclass{standalone}
\usepackage{tikz} \usetikzlibrary{angles,quotes}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,-1);
\filldraw[fill=yellow]
(A)--(B)--(C)--cycle
pic[draw,
"\pgfmathanglebetweenlines{\pgfpoint{2}{-1}}{\pgfpoint{0}{0}}
{\pgfpoint{0}{0}}{\pgfpoint{2}{5}}
$\pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}$",
angle eccentricity=2]
{angle = C--A--B};
\end{tikzpicture}
\end{document}
顺便说一句,如果有一些事情可以做得更好,比如不使用\pgfpoint
以便获得点的坐标或更容易获得角度,请不要犹豫地纠正。
答案1
一旦从解析器中隐藏方括号,问题就会消失。
\documentclass{standalone}
\usepackage{tikz} \usetikzlibrary{angles,quotes}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,-1);
\filldraw[fill=yellow]
(A)--(B)--(C)--cycle
pic[draw,
"{\pgfmathanglebetweenlines{\pgfpoint{2}{-1}}{\pgfpoint{0}{0}}
{\pgfpoint{0}{0}}{\pgfpoint{2}{5}}
$\pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}$}",
angle eccentricity=2]
{angle = C--A--B};
\end{tikzpicture}
\end{document}
但是,读取角度的标准方法是使用calc
。这样您就不必重复坐标。除此之外,计算结果在路径构建期间已经可用,并且可以在那里使用,这在本例中不起作用,但总的来说非常有用。
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{angles,quotes,calc}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,-1);
\filldraw[fill=yellow] let \p1=($(B)-(A)$),\p2=($(C)-(A)$),
\n1={atan2(\y1,\x1)-atan2(\y2,\x2)} in
(A)--(B)--(C)--cycle
pic[draw,
"{$\pgfmathparse{\n1}%
\pgfmathprintnumber[fixed,precision=2]{\pgfmathresult}$}",
angle eccentricity=2]
{angle = C--A--B};
\end{tikzpicture}
\end{document}
如你所见,这个角度也“更加现实”。