用于绘制热力学循环的 tikz 包

用于绘制热力学循环的 tikz 包

tikz 库是否有扩展,可让人轻松绘制热力学循环?例如您在链接中看到的图片:http://en.wikipedia.org/wiki/Carnot_heat_engine#mediaviewer/File:Carnot_heat_engine_2.svg

如果没有库,有人可以建议一种简单的方法来解决这个问题吗?也许提供一个例子?我使用 LaTeX 已经一年多了,但我才刚刚开始用 tikz 在 LaTeX 中绘图。

答案1

这是一种可能性,其中pic设计了 3 个参数,称为 nodea、nodeb 和 nodec——#1=颜色、#2=标签和#3=内部节点标签。

在此处输入图片描述

代码

\documentclass[border=10pt]{standalone}%{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows}
\tikzset{%
pics/.cd,
nodea/.style args={#1#2#3}{
  code={\node[minimum height=2cm] (#3) {\color{#1}#2};
       \draw[thick] (#3.south west) -| (#3.north east)--(#3.north west);
  }
},
%pics/.cd,
nodeb/.style args={#1#2#3}{
  code={\node[minimum height=2cm] (#3) {\color{#1}#2};
       \draw[thick] (#3.south east) -| (#3.north west)--(#3.north east);
  }
},
%pics/.cd,
nodec/.style args={#1#2#3}{
  code={\node[draw,thick,shape=circle,inner sep=1cm] (#3) {\color{#1}#2};
  }
},
}
\begin{document}
  \begin{tikzpicture}[scale=2]
    \pic at (0,0) {nodea={red}{$T_H$}{L}};
    \pic at (2,0) {nodec={black}{}{C}};
    \pic at (4,0) {nodeb={blue}{$T_C$}{R}};
 \draw[->,>=latex](L)--node[midway,above]{$\mathbf{Q_H}$}(C); 
 \draw[->,>=latex](C)--node[midway,above]{$\mathbf{Q_C}$} (R);
 \draw[->,>=latex](C)--node[midway,left]{$\mathbf{W}$} ++(0,-2cm);
  \end{tikzpicture}
\end{document}

答案2

这是一个使用 PSTricks 的解决方案,只是为了好玩。

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}[shortput=nab](-4,-3)(4,1)
    \cnode{1}{c}
    \pnode(-3,0){l}\pnode(3,0){r}\pnode(0,-3){b}
    \rput(l){\psline(-1,-1)(0,-1)(0,1)(-1,1)}
    \rput{180}(r){\psline(-1,-1)(0,-1)(0,1)(-1,1)}
    \psset{arrows=->}
    \ncline{l}{c}^{$Q_H$}\ncline{c}{r}^{$Q_C$}\ncline{c}{b}_{$W$}
    \uput[180](l){\color{red}$T_H$}\uput[0](r){\color{blue}$T_C$}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容