\tkzGetAngle 和 \tkzAngleResult,精度

\tkzGetAngle 和 \tkzAngleResult,精度

如何指定角度的精度并使用角度的绝对值(以 ° ' 和 " 为单位)

在此处输入图片描述

\documentclass{article}
\usepackage{pgfplots} 
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{center}
\begin{tikzpicture}
\coordinate (M) at (0,0) ;
\coordinate (A) at (canvas polar cs:angle=80,radius=4cm) ;
\coordinate (B) at (canvas polar cs:angle=-40,radius=4cm) ;
\coordinate (C) at (canvas polar cs:angle=30,radius=4cm);
\coordinate (D) at (canvas polar cs:angle=125,radius=4cm);
\coordinate (E) at (canvas polar cs:angle=200,radius=4cm);
\coordinate (F) at (canvas polar cs:angle=245,radius=4cm);
\draw (M) circle (4cm);
\draw (B) -- (A) -- (C);
\draw (B) -- (D) -- (C);
\draw (B) -- (E) -- (C);
\draw (B) -- (F) -- (C);
\tkzDrawPoints(A,B,C,D,E,F,M)
\tkzLabelPoints[above](A)
\tkzLabelPoints(B,C,M)
\tkzLabelPoints[left](D,E,F)
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.4](B,A,C)
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.4](B,D,C)
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.4](B,E,C)
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.4](B,F,C)
%\tkzLabelAngle[pos = 0.8](B,A,C){$\alpha$} 
\tkzLabelAngle[pos = 0.8](B,D,C){$\beta$}  
\tkzLabelAngle[pos = 0.8](B,E,C){$\gamma$} 
\tkzLabelAngle[pos = 0.8](B,F,C){$\delta$}  
\tkzGetAngle{angleBAC}
\tkzLabelAngle[pos = 0.8](B,A,C){\tkzAngleResult}
 \end{tikzpicture}
\end{center}
\end{document}

答案1

要获取正角度,您可以使用\tkzFindAngle(B,A,C)。它至少在这种情况下有效。然后您使用\tkzGetAngle{angleBAC}将结果保存在 中\angleBAC

为了使其完美,您可以使用\FPround\angleBAC\angleBAC{2}(手册中的示例 20.7 中演示),但我知道这不是您想要的。

为了获得 DD°MM'SS" 形式的角度,我创建了一个宏ddToddmmss,使用 PGF 的数学函数将角度从十进制度转换为该形式,然后打印结果。与 一起使用\ddToddmmss{\angleBAC},用于非圆整角度。

从您的示例中删除很多不必要的东西(您甚至没有使用pgfplots):

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\makeatletter
\newcommand\ddToddmmss[1]{%
  \pgfmathtruncatemacro\deg@tmp{#1}%
  \pgfmathsetmacro\min@tmp{(#1-\deg@tmp)*60}%
  \pgfmathtruncatemacro\Min@tmp{\min@tmp}
  \pgfmathtruncatemacro\sec@tmp{(\min@tmp-floor(\min@tmp))*60}%
  \ensuremath{\deg@tmp^\circ \Min@tmp ' \sec@tmp ''}}
\makeatother
\begin{document}
\begin{tikzpicture}
% code from tikz
\coordinate (A) at (canvas polar cs:angle=80,radius=4cm) ;
\coordinate (B) at (canvas polar cs:angle=-40,radius=4cm) ;
\coordinate (C) at (canvas polar cs:angle=30,radius=4cm);
\draw (B) -- (A) -- (C);
% code from tkz-euclide no ;
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[above](A)
\tkzLabelPoints(B,C)
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.4](B,A,C)
\tkzFindAngle(B,A,C)
\tkzGetAngle{angleBAC}
%\FPround\angleBAC\angleBAC{2}
\tkzLabelAngle[pos = 0.8](B,A,C){\ddToddmmss{\angleBAC}}  
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容