带开关的示意图

带开关的示意图

图表

我想在 latex 中绘制此图表。我知道如何绘制矩形和箭头(基本 tikz 用户),但以对称方式绘制,使箭头位于框的中心会耗费大量时间(通常需要先在纸上指定所有长度)。有没有更快的方法来绘制此类图表?另外,如果您能帮助完成此图表的任何部分,我可以完成其余部分。谢谢

答案1

如果您发现自己为了保持对称性而进行大量手动计算,我有两个建议:

  1. 学习正确使用相对坐标coordinate和锚点;
  2. 学习使用calcTiZ 库(这里不需要,但是......)。

构建图表的一种方法如下(可以压缩,但我不想使用技巧或其他类似的东西——代码应该很简单)。

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\begin{document}
\begin{circuitikz}
    \draw (0,0) coordinate(A) to[rmeterwa] ++(3,0) coordinate(B);
    % circuitikz manual page 105
    \node [cute spdt up arrow, anchor=in](sw-r) at (B){};
    \node [cute spdt up arrow, anchor=in, xscale=-1](sw-l) at (A){};
    \draw [dashed] (sw-l-in) -- (sw-l-out 2);
    \draw [dashed] (sw-r-in) -- (sw-r-out 2);
    \draw (sw-l.out 1) -- ++(-2,0);
    \draw (sw-l.out 2) to[generic, name=G] ++(-2,0);
    \node at (G.center) {D};
    % circuitikz manual page 71
    % put the adder midway between the switch and ++(2,0)
    \draw (sw-r.out 1) ++(1,0) node[adder, circuitikz/blocks/scale=0.5](ADD){} ++(1,0) coordinate(Aend);
    \draw (sw-r.out 1) -- (ADD.w) node[inputarrow]{} (ADD.e) -- (Aend) node[inputarrow]{};
    \draw (ADD.n) node[inputarrow, rotate=-90]{} -- ++(0,0.5);
\end{circuitikz}
\end{document}

在此处输入图片描述

答案2

带有以下软件包的 pstricks 解决方案pst-circ

\documentclass[11pt, border=6pt, svgnames]{standalone}
\usepackage{pst-circ}

\usepackage{sansmath}

\begin{document}

\begin{pspicture}(-5,-1)(6.5,2.5)
\sffamily\psset{dash=4pt 3pt, linewidth=1pt, arrowinset=0, linejoin=1}%, 
\SpecialCoor
\pnodes{A}(0,0)(-1.5,0)(1.5,0)
\pnodes{B}(-5,0.75)(-2.5,0.75)(2.5,0.75)(6.4,0.75)
\pnodes{C}(-5,-0.75)(-2.5,-0.75)(2.5,-0.75)
\pnodes(0,0){O}(4.45,2.5){C}
\pcline(B0)(B1)
\resistor[labeloffset=0](C0)(C1){D}
\Ucc(A1)(A2){}
{\psset{linewidth=0.8pt}\psline{->}(0.9;-120)(0.9;60)
\psarc{->}(A1){0.75}{110}{170}\psarcn{->}(A2){0.75}{70}{10}}
{\psset{linewidth=1.5pt}\pcline{-*}(A1)(B1)\pcline[linestyle=dashed]{o-*}(A1)(C1)%
\pcline{-*}(A2)(B2)\pcline[linestyle=dashed]{o-*}(A2)(C2)}
\Ucc[labeloffset=0](B2)(B3){\Large\bfseries+}
\psline{->}(C)(4.45,1.25)\psline{->}(B2)(3.96,0.75)\psline{->}(5,0.75)(6.5,0.75)
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容