用坐标定义的 3 点之间的角度

用坐标定义的 3 点之间的角度

假设点ABC定义为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}

在此处输入图片描述

相关内容