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,



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 at 11:57

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.