I am looking for a way to reproduce figures such as this one : https://files.mtstatic.com/site_4334/18479/0?Expires=1614076506&Signature=WyOdnmiCsw8BOVr00WL5NsHkTQmmQmVWm8x2DuAfP0QuJ0XZsPe2t8v~J2SVAXERdBWK9OfmDuoogo~T9uXeflGGyFy~z3vKSU3POS2ESZ7VqOQ8HZfzuIW9HO6lIvneETKTySQOdKhzWtuCY5pu24EoJI0tob2fLm-6F8h6ojA_&Key-Pair-Id=APKAJ5Y6AV4GI7A555NA I am particularly interested in the 3D polyhedral structure (not the energy level diagrams below). If anyone has any clue as to what way one should go in order to reproduce that... I must say that this is wildly above my current tikz level ! Or whatever other environment could work.

Thanks a lot,


1 Answer 1


Here is a little example. It can be improved with a little work, specially visible and non-visible parts.

\usepackage    {tikz}

\begin{tikzpicture}[line cap=round,line join=round,x={(-0.5908cm,-0.4452cm)},y={(0.8068cm,-0.3260cm)},z={(0cm,0.8340cm)}]
  \def\d{3}    % Distance center-electron
  \def\nr{1}   % Nucleus  radius
  \def\er{0.5} % Electron radius
  % Electron cooridnates
  \coordinate (O) at (  0,  0,  0);
  \coordinate (A) at ( \d,  0,  0);
  \coordinate (B) at (  0, \d,  0);
  \coordinate (C) at (-\d,  0,  0);
  \coordinate (D) at (  0,-\d,  0);
  \coordinate (E) at (  0,  0, \d);
  \coordinate (F) at (  0,  0,-\d);
  % Octahedron
  \draw[gray,fill=gray,fill opacity=0.3] (A) -- (B) -- (E) -- cycle;
  \draw[gray,fill=gray,fill opacity=0.3] (A) -- (B) -- (F) -- cycle;
  \draw[gray,fill=gray,fill opacity=0.3] (A) -- (D) -- (E) -- cycle;
  \draw[gray,fill=gray,fill opacity=0.3] (B) -- (C) -- (E) -- cycle;
  % Nucleus
    \clip (0,0) circle (\nr cm);
    \shade[inner color=green!50!black, outer color=gray] (0.5*\nr,0.25*\nr) circle (2*\nr cm);
    \node[white] at (0,0) {\huge $n^+$};
  \draw[dashed,gray] (C) -- (D) -- (F) -- cycle;
  % Electorns and axis
  \foreach\i in {A,B,C,D,E,F}
      \clip (0,0) circle (\er cm);
      \shade[inner color=black, outer color=gray] (0.5*\er,0.25*\er) circle (2*\er cm);
      \fill[white] (-0.6*\er cm,-0.04*\er cm) rectangle (0.6*\er cm,0.04*\er cm);
    \draw[very thick,dashed,shorten <=\nr cm,shorten >=\er cm] (O) -- (\i);
    \draw[very thick,shorten <=\nr cm,shorten <=\er cm] (\i) -- ($2*(\i)$);;
  % Axis labels
  \node at ($2*(A)$) [left]  {$x$};
  \node at ($2*(B)$) [right] {$y$};
  \node at ($2*(E)$) [above] {$z$};

enter image description here

  • Hi, thank you so very much ! This is awesome :-)
    – user22744
    Feb 23, 2021 at 11:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .