
Estou tentando entender como funcionam as travessias de fios com o CircuiTikz. Já vi as famosas "travessias Kink", mas gostaria primeiro de tentar resolver o problema com as travessias que o CircuiTikz oferece.
Por exemplo: Como você desenharia um cruzamento nesse cruzamento usando o pacote CircuiTikz? Sem saber as coordenadas nem a posição relativa da curva de C para D.
Este é o código que escrevi:
\documentclass[a4paper,12pt]{article}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[]{circuitikzgit}
\begin{document}
\begin{circuitikz}
\draw (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw (1,2)node[circ]{c} |- (3,-2)node[circ]{d};
\end{circuitikz}
\end{document}
É importante para mim não usar o formato de estilo de nó que o manual sugere, porque isso é para um circuito maior/mais complexo que estou desenhando e gostaria de desenhar o cruzamento semelhante a um estilo de caminho de uma coordenada para outra como:
\draw (1,2)node[circ]{c} to[crossing] |- (3,-2)node[circ]{d};
Mas obviamente isso não funciona.
Como você pode ver, usei a última versão do CircuiTikz,é aqui que você pode obtê-lo.
Responder1
O problema é que ele (a) |- (b)
é processado como duas seções separadas e to[crossing]
só pode lidar com uma.
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw (1,2)node[circ]{c} to[crossing] (1,2 |- 3,-2) -- (3,-2)node[circ]{d};
\end{circuitikz}
\end{document}
Esta versão rouba descaradamente do Fractal, mas substitui o circ
arquivo jump crossing
.
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{intersections}
\newlength{\crossing}
\makeatletter
\setlength{\crossing}{\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen}
\makeatother
\begin{document}
\begin{circuitikz}
\draw[name path=ab] (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw[name path=cd] (1,1)node[circ]{c} |- (3,-2)node[circ]{d};
\path[name intersections={of=ab and cd,by=e}];
\fill[color=white] (e) circle[radius=0.5\crossing];% erase plain crossing
\draw (e) node[jump crossing]{};
\end{circuitikz}
\end{document}
Também se pode usar:
\path [name intersections={of=ab and cd,by=e}]
[fill=white] (e) circle[radius=0.5\crossing]% erase plain crossing
node[jump crossing,rotate=90]{};
Responder2
Como circuitikz
é basicamente uma extensão (muito boa) do TikZ, não vejo absolutamente nenhuma razão para não usar o Ti padrãokSintaxes Z para isso.
\documentclass[a4paper,12pt]{article}
\usepackage[a4paper, margin=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{circuitikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{circuitikz}
\draw[name path=ab] (0,0)node[circ]{a} -- (4,0)node[circ]{b};
\draw[name path=cd] (1,2)node[circ]{c} |- (3,-2)node[circ]{d};
\path[name intersections={of=ab and cd,by=e}] (e) node[circ] {e};
\end{circuitikz}
\end{document}