我更喜欢下图所示的电压源。如何在 circuitikz 中实现这一点?
有一个相同的问题这里但是对于普通的 tikz 来说。我尝试实现他们给出的解决方案,但它似乎无法与 circtuitikz 结合使用。事实上它会产生错误。
答案1
一个简单的方法是使用open
选项o-o
:
\draw (0,0) to ++(1,0) to[open,o-o,l={$U_\sim$}] ++(1,0) to ++(1,0);
或者,customV
可以定义和使用自定义组件:
\draw (3.5,0) to[customV,l={$U_\sim$}] ++(3,0);
梅威瑟:
\documentclass[border=3mm]{standalone}
\usepackage{circuitikz}
\makeatletter
\pgfcircdeclarebipole{}{\ctikzvalof{bipoles/open/height}}{customV}{\ctikzvalof{bipoles/open/height}}{\ctikzvalof{bipoles/vsource/width}}{
\pgftransformshift{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}}
\pgftransformshift{\pgfpoint{2\pgf@circ@res@right}{0pt}}
\pgfnode{ocirc}{center}{}{}{\pgfusepath{draw}}
}
\def\pgf@circ@customV@path#1{\pgf@circ@bipole@path{customV}{#1}}
\compattikzset{customV/.style = {\circuitikzbasekey, /tikz/to path=\pgf@circ@customV@path, label=#1}}
\makeatother
\begin{document}
\begin{circuitikz}
\draw (0,0) to ++(1,0) to[open,o-o,l={$U_\sim$}] ++(1,0) to ++(1,0);
\draw (3.5,0) to[customV,l={$U_\sim$}] ++(3,0);
\end{circuitikz}
\end{document}