假设点A
、B
和C
定义为coordinate
。是否有一个内置函数(假设\angle{A,B,C}
)可以计算 Latex 中 3 个给定点之间的角度?
我知道这个功能\pgfmathanglebetweenpoints,但它不实用,因为它只需要 2 个点,并且它不适用于使用定义的点coordinate
(除非我不知道如何使用它)。
在下面的例子中,函数\angle{A,B,C}
应该返回60
度数。(问题不在于绘制角度,而在于计算角度的值)
\documentclass{standalone}
\usepackage{tikz}
\usepackage{xfp}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,3);
\coordinate (C) at (\fpeval{3*sqrt(3)},\fpeval{-4*sqrt(3)});
\draw[fill] (A) circle (0.05) node[left] {$A$};
\draw[fill] (B) circle (0.05) node[right] {$B$};
\draw[fill] (C) circle (0.05) node[right] {$C$};
\end{tikzpicture}
\end{document}
答案1
该tkz-euclide
包计算角度。
\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,3);
\coordinate (C) at (\fpeval{3*sqrt(3)},\fpeval{-4*sqrt(3)});
\draw[fill] (A) circle (0.05) node[left] {$A$};
\draw[fill] (B) circle (0.05) node[right] {$B$};
\draw[fill] (C) circle (0.05) node[right] {$C$};
\tkzFindAngle(A,B,C)
\tkzGetAngle{angleABC}
\edef\angleABC{\fpeval{round(\angleABC)}}
\tkzDrawSegments(A,B B,C)
\tkzMarkAngle(A,B,C)
\tkzLabelAngle[pos=1.3](A,B,C){$\angleABC^\circ$}
\end{tikzpicture}
\end{document}