在第三个圆内绘制两个相切圆

在第三个圆内绘制两个相切圆

如何使用 tikz 或 tkz-euclide 绘制三个相切圆,如下图所示?

三个相切圆

最大的圆的半径应为 5 厘米,其他两个圆的半径可以任意,但不得超过 2.5 厘米。我已经成功绘制了两个相切圆,但我不知道如何绘制第三个圆,它应该与其他两个圆相切。以下是我已经完成的操作:

\documentclass{standalone}
 \begin{document}
  \begin{tikzpicture}
    \tkzDefPoints{0/0/B, 4/1/C}
    \tkzDrawCircle[R](C,5cm)
    \tkzInterLC[R](B,C)(C,5cm) \tkzGetPoints{D}{E}
    \tkzDrawCircle(B,D)
  \end{tikzpicture}
\end{document}

提前谢谢了

答案1

这些圆的圆心位于其他圆周围的辅助圆的交点处,其中辅助圆的半径等于原始半径加上新圆的半径。

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=1pt},
    declare function={R=5;rA=1.5;rB=1;rC=1.3;}]
 \draw (0,0) coordinate(O) circle[radius=R];
 \draw (160:R-rA) node[dot,label=20:$A$](A){} circle[radius=rA];
 \path[overlay,name path=auxB1] (O) circle[radius=R-rB]; 
 \path[overlay,name path=auxB2] (A) circle[radius=rA+rB]; 
 \draw[name intersections={of=auxB1 and auxB2,by={aux,B}}]
  (B) node[dot,label=above:$B$]{}  circle[radius=rB];
 \path[overlay,name path=auxC1] (A) circle[radius=rA+rC]; 
 \path[overlay,name path=auxC2] (B) circle[radius=rB+rC]; 
 \draw[name intersections={of=auxC1 and auxC2,by={aux,C}}]
  (C) node[dot,label=above:$C$]{}  circle[radius=rC];
\end{tikzpicture}
\end{document}

在此处输入图片描述

当然,这不需要任何库,只需要余弦定律来告诉我们给定边长的三角形的角度。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=1pt},
    declare function={R=5;rA=1.5;rB=1;rC=1.3;alpha=160;
    cosinelaw(\a,\b,\c)=acos((\a*\a+\b*\b-\c*\c)/(2*\a*\b));}]
 \draw (0,0) coordinate(O) circle[radius=R];
 \draw (alpha:R-rA) node[dot,label=alpha-180:$A$](A){} circle[radius=rA];
 \draw ({-cosinelaw(R-rA,R-rB,rA+rB)+alpha}:R-rB) 
    node[dot,label=above:$B$](B){}  circle[radius=rB];
 \pgfmathsetmacro{\myturn}{cosinelaw(rA+rB,rC+rB,rC+rA)-180}    
 \path (A) -- (B) -- ([turn]\myturn:rB+rC)
  node[dot,label=above:$C$](C){};
 \draw (C) circle[radius=rC]; 
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

只需一个解决方案tkz-euclide

\documentclass{standalone} 
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
  \def\RA{5} \def\RB{2} \def\RC{1}
  \tkzDefPoint(0,0){O}
  \tkzDefPoint(\RA,0){A}
  \tkzDefPoint(\RB,0){B}
  \pgfmathparse{\RB+\RC}
  \let\r\pgfmathresult
  \pgfmathparse{\RA-\RC}
  \let\R\pgfmathresult  
  \tkzInterCC[R](B,\r)(A,\R)
  \tkzGetPoints{C}{D}
  \tkzDrawCircles[R](A,\RA B,\RB C,\RC)
  \tkzDrawPoints(A,B,O,C)
  \tkzDrawPolygon(A,B,C)
  \tkzLabelPoints(A,B,O,C)
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容