TikZ 実用例(3)~三角形の傍接円~
今回は
三角形の3辺の長さを入力すれば、自動的に傍接円を描くコード
です!
いやぁ、使い道はほとんどないですね(笑)
せっかく作ったので供養です。
\begin{tikzpicture}[scale=0.3]
\tikzmath{
\a = 5;
\b = 7;
\c = 8;
\A = acos((\b^2+\c^2-\a^2)/(2*\b*\c));
\B = acos((\c^2+\a^2-\b^2)/(2*\c*\a));
\C = acos((\a^2+\b^2-\c^2)/(2*\a*\b));
\S = \a*\b*sin(\C)/2;
\r1 = 2*\S/(\b+\c-\a);
\r2 = 2*\S/(\c+\a-\b);
\r3 = 2*\S/(\a+\b-\c);
}
\coordinate (A) at (\B:\c);
\coordinate (B) at (0,0);
\coordinate (C) at (\a,0);
\coordinate[label=below:{$\mathrm{K_1}$}] (K1) at (\B/2-90:{\r1/cos(\B/2)});
\coordinate[label=right:{$\mathrm{K_2}$}] (K2) at ($(C)+(90-\C/2:{\r2/cos(\C/2)})$);
\coordinate[label=left:{$\mathrm{K_3}$}] (K3) at (\B/2+90:{\r3/cos(\B/2)});
\draw[very thick] (A)--(B)--(C)--cycle;
\draw (K1)--(K2)--(K3)--cycle;
\foreach \i in{1,2,3} \draw (K\i) circle[radius=\r\i];
\foreach \i in{1,2,3} \fill (K\i) circle[radius=5pt];
\draw ($(A)!2!(B)$)--($(B)!2!(A)$)
($(B)!3!(C)$)--($(C)!3!(B)$)
($(C)!2.5!(A)$)--($(A)!2!(C)$);
\draw (A)+(\B+\A/2:13mm) node{\small A};
\draw (180+\B/2:12mm) node{\small B};
\draw (C)+(-\C/2:10mm) node{\small C};
\end{tikzpicture}
これをコンパイルすると
となります。
最初の方の \a, \b, \c の数値を変えれば図が変わるので、お試しあれ!
なお、その数値によって「接線の長さ」とか「点のラベルの位置」の微調整が必要ですが、ご了承ください。
この記事が気に入ったらサポートをしてみませんか?