#anglesライブラリ
図形に角度を記入したいときの便利なライブラリです。
\usetikzlibrary{angles}
\draw pic[fill=gray,draw=black, <->, "#文字列",angle eccentricity=1.2, angle radius=0.5cm] {angle=A--B--C}
;
{angle=A--B--C}
のA
,B
,C
は座標を表しています。$\angle \rm{ABC}$に角度の記号をつけます。Bを中心とした弧を書きます。
{angle=A--B--C}
はAからCへ回反時計回りに角度をつけます。{angle=C--B--A}
はその反対側に角度に記号がつきます。
\usetikzlibrary{angles}
\begin{document}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "$\theta$",angle eccentricity=1.3, angle radius=0.5cm]
{angle=A--B--C};
\end{tikzpicture}
\end{document}
オプション
fill
:弧の内部を指定した色で塗りつぶします
angle radius=0.5cm
:弧の半径を決める
angle eccentricity=1.2
: 文字列を配置する場所(中心からの離れ具合)を決めます
<->
はdraw
のオプションと同じ
fill
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, fill=gray,"$\theta$",angle eccentricity=1.3, angle radius=0.5cm]
{angle=A--B--C};
\end{tikzpicture}
angle radius
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, angle eccentricity=1.3, angle radius=0.5cm]
{angle=A--B--C};
\node[below] at(B) {0.5cm};
\draw[xshift=4cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, angle eccentricity=1.3, angle radius=0.8cm]
{angle=A--B--C};
\node[below] at(B) {0.8cm};
\draw[xshift=8cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, angle eccentricity=1.3, angle radius=1cm]
{angle=A--B--C};
\node[below] at(B) {1cm};
\end{tikzpicture}
angle eccentricity
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=0.5, angle radius=0.5cm]
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle eccentricity|};
\node[below] at (ang) {\verb|0.5|};
\draw[xshift=4cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=0.8, angle radius=0.5cm]
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle eccentricity|};
\node[below] at (ang) {\verb|0.8|};
\draw[xshift=8cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=1, angle radius=0.5cm]
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle eccentricity|};
\node[below] at (ang) {\verb|1|};
\end{tikzpicture}
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=2, angle radius=0.5cm]
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle radius|};
\node[below] at (ang) {\verb|0.5|};
\draw[xshift=6cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=2, angle radius=1cm] (ang)
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle radius|};
\node[below] at (ang) {\verb|1|};
\draw[xshift=12cm] (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\draw pic[draw=black, "A",angle eccentricity=2, angle radius=1.5cm] (ang)
{angle=A--B--C};
\node[below=10pt](ang) at (B) {\verb|angle radius|};
\node[below] at (ang) {\verb|1.5|};
\end{tikzpicture}
矢印
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\node[right] at (A) {A};
\node[below] at (B) {B};
\node[right] at (C) {C};
\draw pic[draw=black, -latex, angle radius=0.5cm] (ang)
{angle=A--B--C};
\node[right=0.6cm] at (ang) {\verb|angle=A--B--C|};
\end{tikzpicture}
矢印を始点に場合
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\node[right] at (A) {A};
\node[below] at (B) {B};
\node[right] at (C) {C};
\draw pic[draw=black, latex-, angle radius=0.5cm] (ang)
{angle=A--B--C};
\node[right=0.6cm] at (ang) {\verb|angle=A--B--C|};
\end{tikzpicture}
始点と終点を入れ替えた場合
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\node[right] at (A) {A};
\node[below] at (B) {B};
\node[right] at (C) {C};
\draw pic[draw=black, -latex, angle radius=0.5cm] (ang)
{angle=C--B--A};
\node[right=0.6cm] at (ang) {\verb|angle=C--B--A|};
\end{tikzpicture}
直角マーク
直角マークを入れたいときは,次のようにright
を付け加えます。
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) coordinate (A) -- (0,0) coordinate (B) -- (2,2) coordinate (C);
\node[right] at (A) {A};
\node[below] at (B) {B};
\node[right] at (C) {C};
\draw pic[draw=black, angle radius=0.4cm]
{right angle=C--B--A};
\node[right=0.6cm] at (B) {\verb|right angle=C--B--A|};
\end{tikzpicture}
時計回り,反時計回り関係なく,小さく方の角に直角マークを付けます。
node
との相性の悪さ
nodeを使って点の名前を決めてしまうと,次のようになってしまいます。
\begin{document}
\usetikzlibrary{angles}
\begin{tikzpicture}
\draw (3,-1) node[right] (A) {A} -- (0,0) node[below] (B) {B} -- (2,2) node[right] (C) {C};
\draw pic[draw=black, -latex, angle radius=0.5cm]
{angle=A--B--C};
\end{tikzpicture}
\end{document}
交点の求め方
2つの曲線に名前をつける。
\draw[name path = BD] (B) -- (D);
\draw[name path = AC] (A) -- (C);
オプションname path = #文字列
で名前を付けることができる。パスが存在すればよいので,\draw
ではなく\path
でもよい。
\node[name intersections = {of = BD and AC, by ={E}}] at (E) {E(交点)};
オプションに交点を計算させるコマンドを入れる。{of = BD and AC}
はパスBDとパスACの名前を書いてパスを指定している。by = {E}
は交点に(座標として)名前を付けている。このオプションは省略できる。その場合,交点の名前はintersection-1
となる。
交点が複数ある場合はintersection-1
,intersection-2
,intersection-3
...となる。どのような順番で決定されているかは謎。