我使用以下代码制作了示意图:
\begin{circuitikz}
\draw
(0,0) node[op amp, scale=2] (opamp) {}
(opamp.+) -- (-2.38,-3) node[ground] {}
(opamp.+) node[left, above] {$u_+$}
(opamp.-) node[left, below] {$u_-$}
(opamp.out) to[short, -*](4,0) node[right] {$u_{izl}$}
(opamp.-) to[R, label=$R_1$, i<=$i_1$, *-*] (-8, 1) node[left] {$u_{ul}$}
(opamp.-) to[short] (-2.4,4) {}
(-2.4, 4) to[R, label=$R_2$, i>=$i_2$] (3,4) {}
(3,4) to[short, -*] (3,0)
(opamp.up) to[short, -*] (-0.17,2.5) {}
(opamp.down) to[short, -*] (-0.17,-2.5) {}
(4,0) to[] (4,0) {}
;
\end{circuitikz}
但是上面的一些线条并不直,例如这些:
我尝试更改坐标,但无法正确更改。有没有更简单的方法?
答案1
您可以为将形成交叉点的节点分配节点名称,然后使用语法to[short] (u1|-u2)
。这可能会产生非常精确的结果,但由于结构化的方式circuitikz
,我不得不对另一条边进行一些手动调整。
无论如何,这条线现在都是直的。
输出
代码
\documentclass[tikz, margin=10pt]{standalone}
\usepackage[europeanresistors]{circuitikz}
\begin{document}
\begin{circuitikz}
\draw
(0,0) node[op amp, scale=2] (opamp) {}
(opamp.+) -- (-2.38,-3) node[ground] {}
(opamp.+) node[left, above] {$u_+$}
(opamp.-) node[left, below] (u1) {$u_-$}
(opamp.out) to[short, -*](4,0) node[right] {$u_{izl}$}
(opamp.-) to[R, label=$R_1$, i<=$i_1$, *-*] (-8, 1) node[left] {$u_{ul}$}
(-2.38,4) to[R, label=$R_2$, i>=$i_2$] (3,4) node (u2) {}
(opamp.-) to[short] (u1|-u2) {}
(3,4) to[short, -*] (3,0)
(opamp.up) to[short, -*] (-0.17,2.5) {}
(opamp.down) to[short, -*] (-0.17,-2.5) {}
(4,0) to[] (4,0) {}
;
\end{circuitikz}
\end{document}