![用于绘制热力学循环的 tikz 包](https://linux22.com/image/297490/%E7%94%A8%E4%BA%8E%E7%BB%98%E5%88%B6%E7%83%AD%E5%8A%9B%E5%AD%A6%E5%BE%AA%E7%8E%AF%E7%9A%84%20tikz%20%E5%8C%85.png)
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}