![在 tkz-euclide 中是否有一种直接的方法来测量角度?](https://linux22.com/image/312043/%E5%9C%A8%20tkz-euclide%20%E4%B8%AD%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E7%A7%8D%E7%9B%B4%E6%8E%A5%E7%9A%84%E6%96%B9%E6%B3%95%E6%9D%A5%E6%B5%8B%E9%87%8F%E8%A7%92%E5%BA%A6%EF%BC%9F.png)
我知道宏pgf
:
\pgfmathanglebetweenpoints
和
\pgfmathanglebetweenlines
我想知道是否有任何宏可以tkz-euclide
更轻松地完成同样的事情。
例如,如果我有两个坐标A
和B
,为了测量通过这两个点的线的角度,我可以写
\pgfmathanglebetweenpoints{\pgfpointanchor{A}{center}}{\pgfpointanchor{B}{center}}
\edef\aeABangle{\pgfmathresult}
如果有一个宏tkz-euclide
可以以类似的方式执行此操作,那将会很方便
\tkzAngleAlong(A,B)
然后使用某种机制来检索角度的值。
我几乎不懂法语。我的法语水平还行,我通常能看懂手册上的内容tkz-euclide
,但还不足以让我猜测搜索关键词。因此,如果这已经记录得很好,我深表歉意。
我知道我可以编写自己的宏来执行此操作。我只是不想重新发明轮子(尽管重新发明轮子相对简单)。
答案1
基本上你有:
\tkzFindAngle(c,b,a)
中心的角度就是要找到的角度。或者在本例中是顶点b
。\tkzGetAngle{angleCBA}
给角度命名。\FPround\angleCBA\angleCBA{0}
将角度四舍五入为整数。0 表示小数点后的数字。为了演示,我将一个角度设置为 10 个。\tkzMarkAngle[size=.5](c,b,a)
用圆弧标记角度。您可以使用draw
、fill
甚至来自定义opacity
。\tkzLabelAngle[pos=-.82](c,b,a){\tiny $\angleCBA^\circ$}
标记角度。Pos 表示标签的位置,其余部分与节点的语法类似。(c,b,a)
表示标签应出现在哪个角度/位置;并$\angleCBA$
打印该角度。
输出
代码
\documentclass[margin=10pt,tikz]{standalone}
\usepackage{tkz-euclide}
\usepackage{fp}
\tikzset{
myangle/.style={fill=green!20!white, draw=green!50!black,size=.3,opacity=.3}
}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (5,3);
\coordinate (c) at (3,6);
\draw (a) coordinate[label=left:A] -- (b) coordinate[label=right:B] -- (c) coordinate[label=above:C] -- cycle;
\tkzFindAngle(c,b,a)\tkzGetAngle{angleCBA}\FPround\angleCBA\angleCBA{0}
\tkzFindAngle(a,c,b)\tkzGetAngle{angleACB}\FPround\angleACB\angleACB{10}
\tkzFindAngle(b,a,c)\tkzGetAngle{angleBAC}\FPround\angleBAC\angleBAC{0}
\tkzMarkAngle[size=.5](c,b,a)
\tkzLabelAngle[pos=-.82](c,b,a){\tiny $\angleCBA^\circ$}
\tkzMarkAngle[size=.5](a,c,b)
\tkzLabelAngle[pos=0.6](a,c,b){\tiny $\angleACB^\circ$}
\tkzMarkAngle[size=.5](b,a,c)
\tkzLabelAngle[pos=.7](b,a,c){\tiny $\angleBAC^\circ$}
\end{tikzpicture}
\end{document}