这样的图形该如何画呢?

这样的图形该如何画呢?

我正在尝试绘制下图所示的图形,我不知道该如何继续 在此处输入图片描述

这是我迄今为止尝试过的 MWE

\documentclass{article}
\usepackage{chemfig}

\usepackage{amsmath}
\usepackage{multirow}
\usepackage{tikz}
\newcommand{\xuparrow}[2][]{%
\left.{#1}\right\uparrow{#2}}
\newcommand*{\threeemdash}{\rule[0.5ex]{3em}{0.55pt}}

\begin{document}
\pagenumbering{gobble}
\centering
$\left. 
\begin{tabular}{llll}
&\hspace{-0.5cm} Energy && \\
High & \multirow{2}{*}{$\xuparrow[\begin{gathered}
  \hfill \\
  \hfill \\
  \hfill \\
  \end{gathered}]{}$ }
   & &  \threeemdash\\
      &    &  &  \threeemdash\\
      &    &  & \threeemdash\\
       &   &LUMO & \threeemdash\\
\end{tabular}
\right\}$
\end{document}

答案1

一种可能的方法:

\documentclass[tikz]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,shapes}

\begin{document}\sffamily

\begin{tikzpicture}[every path/.append style={thick}]

 \foreach \v in {0,...,3} {
  \draw (-.5,{\v*.75+3.5}) -- (1.5,{\v*.75+3.5});
  \node[circle] (aa\v) at (0,{\v*.75+3.5}) {};
  \node[circle] (ab\v) at (1,{\v*.75+3.5}) {};

  \draw (-.5,{\v*.75}) -- (1.5,{\v*.75});
  \node[circle,draw] (ba\v) at (0,{\v*.75}) {};
  \node[circle,draw] (bb\v) at (1,{\v*.75}) {};

  \draw (4.5,{\v*.75+3.5}) -- (6.5,{\v*.75+3.5});
  \node[circle,draw] (ca0) at (5,3.5) {};

  \draw (4.5,{\v*.75}) -- (6.5,{\v*.75});
  \node[circle,\ifnum\v<3 draw\fi] (da\v) at (5,{\v*.75}) {};
  \node[circle,draw] (db\v) at (6,{\v*.75}) {};
 }

 \draw[->,shorten >=5pt,shorten <=5pt] (da3) -- node[right]{excited energy} (ca0);
 \draw[decorate,decoration={brace,mirror},densely dotted] ([xshift=20]ab0.south) -- node[right,xshift=5,text width=50]{unoccu\-pied molecular orbitals} ([xshift=20]ab3.north);
 \draw[decorate,decoration={brace,mirror},densely dotted] ([xshift=20]bb0.south) --  node[right,xshift=5,text width=50]{occu\-pied molecular orbitals}([xshift=20]bb3.north);
 \draw[->] ([xshift=-60]ba0.south) node[left,yshift=5pt]{low} -- ([xshift=-60]aa3.north) node[left,yshift=-5pt]{high} node[above]{Energy};

 \node[left] at ([xshift=-10]aa0.west) {LUMO};
 \node[left] at ([xshift=-10]ba3.west) {HOMO};
 \node[text depth=0pt] at (.5,-.75) {in ground state};
 \node[text depth=0pt] at (5.5,-.75) {in excited state};
 \node[draw,signal,signal to=east,text width=40,align=center] at (2.85,2.85) {excitation by light};

\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

pic这里有一个使用一些装饰和线条的方法-o-o--o------o-产生:

在此处输入图片描述 完整代码如下:

\documentclass[border=8mm,tikz]{standalone}

\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.markings, shapes.arrows, arrows.meta, matrix}

\tikzset{
  -o--/.style={decoration={markings,
                           mark=at position 0.2 with {\draw[thick] circle (3pt);}
               },
               postaction={decorate}
  },
  --o-/.style={decoration={markings,
                           mark=at position 0.8 with {\draw[thick] circle (3pt);}},
               postaction={decorate}
  },
  -oo-/.style={decoration={markings,
                           mark=at position 0.2 with {\draw[thick] circle (3pt);},
                           mark=at position 0.8 with {\draw[thick] circle (3pt);}
               },
               postaction={decorate}
  },
  pics/mylines/.style = {
    code={
      \foreach \style [count=\y] in {#1} {
          \draw[thick,\style](0,\y/2)--++(1,0);
      }
    }
  },
  braced/.style={right,rectangle, left delimiter={\}}, minimum height=18mm, align=left},
  fat arrow/.style={single arrow,draw, thick, minimum height=20mm, minimum width=2mm},
}
\begin{document}

  \begin{tikzpicture}
       \draw(1,2.5) pic{mylines={,,,}};
       \draw(1,0) pic{mylines={-oo-,-oo-,-oo-,-oo-}};
       \draw(5,2.5) pic{mylines={-o--,,,}};
       \draw(5,0) pic{mylines={-oo-,-oo-,-oo-,--o-}};
       \draw[thick, -Latex](-0.5,0.5)node[left, label=west:Low]{}
                            --++(0,4)node[left, label=south west:\quad High, above]{Energy};
       \node[braced] at (2.4,3.75){Unoccupied \\ molecular \\ orbitals};
       \node[braced] at (2.4,1.25){Occupied \\ molecular \\ orbitals};
       \node[font=\small] at (0.3,2.0){HOMO};
       \node[font=\small] at (0.3,3.0){LUMO};
       \node at (3.5,2.5) [fat arrow]{\scriptsize excitation by light};
       \draw[-Latex](5.2,2.2)--node[right]{excited energy}++(0,0.6);
  \end{tikzpicture}

\end{document}

相关内容