Допустим, точки A
, B
и C
определены с помощью coordinate
. Есть ли встроенная функция (скажем \angle{A,B,C}
), которая вычисляет угол между 3 заданными точками в Latex?
Я знаю о функции\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}