我正在尝试在电路图的 x 和 y 方向上绘制一条尺寸线 <---- 2 cm ---- >。使用绝对坐标没有问题。但是,使用相对坐标时显示有误,会切断部分电路。我无法令人满意地纠正这个问题。我欢迎任何建议。每个案例都包含一个 MWE 示例。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{circuits.ee.IEC,positioning}
\begin{document}
% circuit with absolute coordinates
\begin{tikzpicture}[circuit ee IEC,
set resistor graphic = var resistor IEC graphic,>=stealth']
\draw (0,0) -- (0,2)
(0,2) to[resistor={info'={R}}](3,2)
(3,2) -- (3,0)
(3,0) to[battery={info'={$V$}}](0,0);
\draw [<->] (-0.6,0) -- (-0.6,2) node[midway,fill=white]{\small{y cm}};
\draw [<->] (-0.2,2.6) -- (3,2.6) node[midway,fill=white]{\small{x cm}};
\end{tikzpicture}
% circuit with relative coordinates
\begin{tikzpicture}[circuit ee IEC, >=stealth',%
set resistor graphic = var resistor IEC graphic]
\node (A) {};
\node (B) [above = 2cm of A] {};
\node (C) [right = 3cm of B] {};
\node (D) [right = 3cm of A] {};
\draw (A.base) -- (B.base)
(B.base) to[resistor={info'={R}}](C.base)
(C.base) -- (D.base)
(D.base) to[battery={info'={$V$}}](A.base);
\draw [<->] (A.west) -- (B.west) node[midway,fill=white]{\small{y cm}}; %!
\draw [<->] (B.north) -- (C.north) node[midway,fill=white]{\small{x cm}}; %!
\end{tikzpicture}
\end{document}
答案1
您需要移动尺寸线,使它们与电路线不重合。由于您使用节点来定位元素,因此您需要将移位长度添加到每个坐标规范中,因此如果您想将线从 向上移动一厘米(A) -- (B)
,则将变成(请参阅([yshift=1cm] A) -- ([yshift=1cm] B)
A
B
变速线连接锚了解更多信息)。
\node
我建议不要使用 s 来定义点,而是使用\coordinate
s。它们不需要空节点文本,也不占用任何空间,这使得对齐更容易。它们没有任何锚点(除了center
),因此您无需决定使用哪个锚点。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{circuits.ee.IEC,positioning}
\begin{document}
% circuit with relative coordinates
\begin{tikzpicture}[circuit ee IEC, >=stealth',%
set resistor graphic = var resistor IEC graphic]
\coordinate (A) ;
\coordinate [above = 2cm of A] (B) ;
\coordinate [right = 3cm of B] (C) ;
\coordinate [right = 3cm of A] (D) ;
\draw (A) -- (B)
(B) to[resistor={info'={R}}](C)
(C) -- (D)
(D) to [battery={info'={$V$}}](A);
\draw [<->] ([xshift=-0.5cm]A) -- ([xshift=-0.5cm]B) node[midway,fill=white]{\small{y cm}}; %!
\draw [<->] ([yshift=0.5cm]B) -- ([yshift=0.5cm]C) node[midway,fill=white]{\small{x cm}}; %!
\end{tikzpicture}
\end{document}