3

I want to draw the following picture:

enter image description here

But, I can only draw a part of it.

enter image description here

My codes:

\documentclass{standalone}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[scale=0.6]
    \foreach \i in {0,60,...,330}{
        \draw (\i:3.4) circle (1.7);
    }
    \draw (0,0) circle (5.1);
\end{tikzpicture}
\end{document}

How to complete the figure?

cfr
  • 198,882
benedito
  • 4,600
  • 3
    You only need to compute the coordinates for the remaining 3 centers and radius. Then, repeat the process with another \foreach. – Sigur Aug 19 '17 at 21:46
  • 4
    Please format your code when you ask questions. You've been around for long enough that people should not have to routinely do this for you. But every time you ask a question, somebody else has to format your code. Personally, I'd consider it rather rude to keep expecting people to do this for me. (I'm not saying you are being rude - only that, were I to do it, I'd consider myself rude.) – cfr Aug 19 '17 at 22:01

1 Answers1

6
  1. The three small circles can be used to calculate the line segment CF in dependency from the small radius r:

    CF = r/cos(30)

  2. Triangle BCE can be used to calculate CE with radius R of the larger circles:

    CE = sqrt(3) R

  3. Triangle BFE can be used to calculate EF (Pythagoras) in dependency from the smaller radius:

    EF = sqrt(r² + 2Rr)

  4. Now, CF can be calculated using 2. and 3.:

    CF = CE - EF

  5. Then, the equation

    CF (from 1.) = CF (from 4.) calculates the smaller radius.

The following example uses 1 as larger radius without option scale. Then the smaller radius is

9 - 6 sqrt(2)

Example file:

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \pgfmathsetmacro\radius{9-6*sqrt(2)}
  \draw
    \foreach \i in {0,60,...,300} {
      (\i:2) circle (1)
    }
    \foreach \i in {90, 210, 330} {
      (\i:{\radius/cos(30)}) circle (\radius)
    }
    (0,0) circle (3)
  ;
\end{tikzpicture}
\end{document}

Result

Heiko Oberdiek
  • 271,626