如何绘制三维配位化合物

如何绘制三维配位化合物

我正在寻找一种方法来重现这样的数字: https://files.mtstatic.com/site_4334/18479/0?Expires=1614076506&Signature=WyOdnmiCsw8BOVr00WL5NsHkTQmmQmVWm8x2DuAfP0QuJ0XZsPe2t8v~J2SVAXERdBWK9OfmDuoogo~T9uXeflGGyFy~z3vKSU3POS2ESZ7VqOQ8HZfzuIW9HO6lIvneETKTySQOdKhzWtuCY5pu24EoJI0tob2fLm-6F8h6ojA_&Key-Pair-Id=APKAJ5Y6AV4GI7A555NA 我对 3D 多面体结构特别感兴趣(不是下面的能级图)。如果有人知道应该怎么做才能重现这一点……我必须说这远远超出了我目前的 tikz 水平!或者任何其他可以工作的环境。

多谢,

马克

答案1

这是个小例子。只要稍加修改就可以改进,特别是可见和不可见的部分。

\documentclass[border=2mm]{standalone}
\usepackage    {tikz}
\usetikzlibrary{3d}
\usetikzlibrary{calc}

\begin{document}
\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
  \begin{scope}
    \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^+$};
  \end{scope}
  \draw[dashed,gray] (C) -- (D) -- (F) -- cycle;
  % Electorns and axis
  \foreach\i in {A,B,C,D,E,F}
  {
    \begin{scope}[shift={(\i)}]
      \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);
    \end{scope}
    \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$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容