我想完成这个图表,但我不知道一种有效的方法将每个矩形中的三条线添加到线条中,看起来像这样:
这是我目前所得到的以及我使用的代码,使用circuitikz:
我使用的代码是:
\documentclass[border=0.5cm]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[
rect/.style={
black,
shape=rectangle,
minimum width=3cm,
minimum height=2cm,
anchor=center},
line/.style={
black}
]
\coordinate (origin) at (0,0);
\pgfmathsetmacro\linelength{13}
\foreach \coordinate in {(0,0), (0,-0.7), (0,0.7)}
{
\draw[line] \coordinate -- ++(0:\linelength);
}
\foreach \point in {1, 5, 9}
{
\draw[line] (\point,-3.5) rectangle ++(3,2) ;
}
\end{tikzpicture}
\end{document}
这只是一些微不足道的事情,所以如果能得到一点帮助就太好了!提前谢谢 :)
答案1
除了nodes
使用矩形和线条坐标外,您还可以使用交点来绘制连接:
\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
carga/.style={draw, minimum width=3cm, minimum height=2cm},
connect/.style={-{Circle[]}, shorten > = -2pt},
]
\node[carga] (carga1) {Carga 1};
\node[carga, right=of carga1] (carga2) {Carga 2};
\node[carga, right=of carga2] (carga3) {Carga 3};
\draw ([shift={(-1cm,1cm)}]carga1.north west) coordinate (aux11)--([shift={(1cm,1cm)}]carga3.north east) coordinate(aux12);
\draw ([yshift=.5cm]aux11) coordinate (aux21)--(aux21-|aux12);
\draw ([yshift=.5cm]aux21) coordinate (aux31)--(aux31-|aux12);
\draw[-Latex] ([xshift=.5cm]aux31) -- node[above, near end]{$I_T$} ++(.75,0);
\foreach \i in {1,2,3}{
\draw[connect] ([xshift=-5mm]carga\i.north) coordinate (aux) --(aux|-aux11);
\draw[connect] (carga\i.north) coordinate (aux) --(aux|-aux21);
\draw[connect] ([xshift=5mm]carga\i.north) coordinate (aux) --(aux|-aux31);
\draw[Latex-] ([shift={(.5cm,.25)}]carga\i.north) -- node[right]{$I_\i$} ++(90:.5);
}
\draw[-Latex] ([xshift=.5cm]aux31) -- node[above, near end]{$I_T$} ++(.75,0);
\end{tikzpicture}
\end{document}
答案2
下面的解决方案使用循环foreach
内的循环foreach
。第一个循环定义了每个卡加,第二个绘制每三条线。
该语法[count=\i]
提供了一个简单的解决方案,可以在循环内添加计数。
我删除了该rect
样式,因为它没有被使用。电流I_1
被I_3
绘制在带有连接点的常规线的上方,但略低于您想要显示的位置,这同样适用于 $I_T$。
\documentclass{article}
\usepackage{tikz,circuitikz}
\begin{document}
\begin{tikzpicture}[
line/.style={
black},
]
%\coordinate (origin) at (0,0);
\pgfmathsetmacro\linelength{13}
\draw (0,0.7) to[short, i=$I_T$] ++(1,0);
\foreach \c/\p [count=\i] in {-0.7/1, 0/5, 0.7/9} {
\draw[line] (0,\c) -- ++(0:\linelength);
\foreach \x/\y in {1/-0.7, 1.5/0, 2/0.7} {
\draw (\p+\x,-1.5) to[short, -*] (\p+\x,\y);
}
\draw (\p+2,-0.8) to[short, i=$I_{\i}$] ++(0,-0.5);
}
\foreach \point [count=\i] in {1, 5, 9} {
\draw[line] (\point,-3.5) rectangle ++(3,2) node[pos=0.5]{Carga \i};
}
\end{tikzpicture}
\end{document}