Problem mit Drahtkreuzungen

Problem mit Drahtkreuzungen

Ich versuche zu verstehen, wie Drahtkreuzungen mit CircuiTikz funktionieren. Ich habe die berühmten „Knickkreuzungen“ gesehen, möchte aber zunächst versuchen, das Problem mit den von CircuiTikz bereitgestellten Kreuzungen zu lösen.

Beispiel: Wie würden Sie mit dem Paket CircuiTikz eine Kreuzung an dieser Kreuzung zeichnen? Ohne die Koordinaten oder die relative Position der Abbiegung von C nach D zu kennen.

Bildbeschreibung hier eingeben

Dies ist der Code, den ich geschrieben habe:

\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}

Mir ist es wichtig, nicht das im Handbuch vorgeschlagene Knotenformat zu verwenden, da ich hier einen größeren/komplexeren Schaltkreis zeichne und die Kreuzung ähnlich einem Pfad von einer Koordinate zur anderen zeichnen möchte, etwa:

\draw (1,2)node[circ]{c} to[crossing] |- (3,-2)node[circ]{d};

Aber offensichtlich funktioniert das nicht.

Wie Sie sehen, habe ich die letzte Version von CircuiTikz verwendet,hier können Sie es bekommen.

Antwort1

Das Problem besteht darin, dass (a) |- (b)es als zwei separate Abschnitte verarbeitet wird und to[crossing]nur einer verarbeitet werden kann.

\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}

Demo


Diese Version klaut schamlos von Fractal, ersetzt aber das circdurch ein 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}

Man kann auch verwenden:

\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]{};

Antwort2

As circuitikzist im Grunde eine (sehr gute) Erweiterung von TikZ, ich sehe absolut keine Gründe, warum ich nicht Standard-Ti verwenden solltekZ-Syntaxen hierfür.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen