4

I want to create a little image for some slides for the purpose crediting a team for some work. I want a set of images to be set around a circle path and each of the images to appear as circles also. How could I approach something like this?

Very roughly, what I'm looking for is something like this:

It feels like TikZ could be used for this in some way, but I don't know where to start.

6

Lot's of drawings of smiley faces in the other answers, but if external images of the team members were required, then something like the following could be used/adapted:

\documentclass[tikz,border=5]{standalone}
\tikzset{%
  image 1/.initial=example-image,
  image 2/.initial=example-image-a,
  image 3/.initial=example-image-b,
  image 4/.initial=example-image-c,
  image 5/.initial=example-image-golden,
  image 6/.initial=example-grid-100x100pt,
  path image/.style={path picture={%
     \edef\imagename{\pgfkeysvalueof{/tikz/image #1}}%
     \node at (path picture bounding box.center) 
       {\includegraphics[height=1cm]{\imagename}};
  }}
}
\begin{document}
\tikz\foreach \i in {1,...,6}
  \draw [path image=\i] (\i*60+30:2) circle [radius=0.5cm];
\end{document}

enter image description here

  • Thank you very much for your very clear solution. Would you happen to have any thoughts on how a caption could be added below each circle? – d3pd Sep 21 '15 at 9:08
  • @d3pd see my answer to your other question. – Mark Wibrow Sep 21 '15 at 12:37
10

This can be easily done with TikZ and pic:

enter image description here

The code:

\documentclass[border=5pt]{standalone}
\usepackage{tikz}

\definecolor{myblue}{RGB}{24,97,170}
\newlength\Radius

\begin{document}

\begin{tikzpicture}[
hface/.pic={
\fill[myblue]
  (0,0) circle [radius=\Radius];
\fill[white]
  (0,0) circle [radius=0.85\Radius];
\fill[myblue]
  (0,0) circle [radius=0.75\Radius];
\fill[white]
  (-0.3\Radius,0.3\Radius) circle [radius=0.125\Radius];
\fill[white]
  (0.3\Radius,0.3\Radius) circle [radius=0.125\Radius];
\draw[white,line width=0.125\Radius]
  (-0.35\Radius,-0.3\Radius) arc [start angle=210,end angle=330,radius=0.4\Radius];
}
]
\setlength\Radius{1cm}
\foreach \Angle in {30,90,150,210,270,330}
\pic at (\Angle:4cm) {hface};
\end{tikzpicture}

\end{document} 

Placement on a circle is done using the polar coordinate system:

\foreach \Angle in {30,90,150,210,270,330}
\pic at (\Angle:4cm) {hface};

where (\Angle:4cm) is 4cm away in the direction given by \Angle.

  • Thank you very much for your clear solution. Part of my goal was to use images (rather than drawn faces) in circles, so I selected the solution by @Mark Wibrow, but your approach with the specified angles is very nice. – d3pd Sep 21 '15 at 9:11
6
\documentclass[pstricks,margin=1cm]{standalone}
\usepackage{multido}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
    \multido{\i=0+60}{6}{%
    \rput(!3.5 \i\space 30 add PtoC){%
        \pscircle*[linecolor=blue]{1.5}%
        \psset{linecolor=white,linewidth=4pt}%
        \pscircle{1.3}%
        \pscircle*(.7;60){4pt}%
        \pscircle*(.7;120){4pt}%
        \psarc(0,0){.7}{220}{320}%
    }}
\end{pspicture}
\end{document}

enter image description here

  • 1
    Thank you very much for your solution. I have always wanted to know how to include PostScript graphics in LaTeX and this is a nice illustration of how to do this. – d3pd Sep 21 '15 at 9:14
5
\documentclass{article}
\usepackage{stackengine,wasysym}
\def\usestackanchor{T}%
\usepackage{ifthen}
\usepackage{fp}
\usepackage{graphicx}
\newcounter{index}
\def\startangle{30}
\def\dtheta{60}% degrees per symbol
\def\dR{3.5}% radius of circle in ex's
\def\dotsize{1}% size of dots relative to \mygraphic
\def\charwidth{3}% overall characterwidth in circle radii
\def\mygraphic{\smiley}
\newlength\dRlen
\setlength\dRlen{\dR ex}
\newcommand\dotcircle{%
\def\basechar{\strut%
  \rule[\dimexpr.5\ht\strutbox-.5\dimexpr\charwidth\dRlen]{0pt}%
{\charwidth\dRlen}\rule{\charwidth\dRlen}{0pt}}%
\savestack{\dotcirclegr}{\basechar}%
\setcounter{index}{\startangle}%
\whiledo{\theindex<360}{%
  \FPdiv\thetaRad{\theindex}{57.29578}%
  \FPcos\dx{\thetaRad}%
  \FPmul\dx{\dR}{\dx}%
  \FPsin\dy{\thetaRad}%
  \FPmul\dy{\dR}{\dy}%
  \savestack{\dotcirclegr}{\stackinset{c}{}{c}{\dy ex}{%
    \kern\dx ex\kern\dx ex\scalebox{\dotsize}{\mygraphic}}{\dotcirclegr}}%
  \addtocounter{index}{\dtheta}%
}\dotcirclegr}
\begin{document}
X\dotcircle Y
\def\startangle{0}%
\def\dtheta{30}% degrees per symbol
\def\dR{6.5}% radius of circle in ex's
\def\dotsize{1.4}% size of dots relative to \mygraphic
\def\charwidth{4.5}% overall characterwidth in circle radii
\def\mygraphic{\smiley}%
\dotcircle
\end{document}

enter image description here

  • Thank you very much for your detailed solution. It is delightful to see a non-TikZ approach. While quite detailed, it is illuminating. – d3pd Sep 21 '15 at 9:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.