I'm using the technique from this TeX.SO answer to produce a circuit with a crossing (I'm using Beamer because in the next step I'll use that to set a background image)
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{intersections}
\usetikzlibrary{calc}
\usepackage{circuitikz}
\newlength{\crossing}
\makeatletter
\setlength{\crossing}{\ctikzvalof{bipoles/crossing/size}\pgf@circ@Rlen}
\makeatother
\begin{document}
\begin{frame}
\begin{tikzpicture}[scale=4,transform shape]
\draw[name path=p1] (0,0) circle -- (2,0) circle;
\draw[name path=p2] (1,1) circle -- (1,-1) circle;
\path [name intersections={of=p1 and p2,by=cross}]
[fill=white] (cross) circle[radius=0.5\crossing];
\path (cross) node[jump crossing,rotate=-90]{};
\end{tikzpicture}
\end{frame}
\end{document}
This works as long as the background is white. However, if the background is not white, but some arbitrary image, it becomes apparent that the crossing-over discontinuity was achieved not by erasure, but by filling with white:
\usebackgroundtemplate{%
\tikz\node[opacity=0.1] {\includegraphics[height=\paperheight,width=\paperwidth]{example-grid-100x100pt}};}
So I thought I should apply this technique and put everything in a knockout group:
\begin{tikzpicture}[scale=4,transform shape]
\begin{scope}[transparency group=knockout]
\draw[name path=p1] (0,0) circle -- (2,0) circle;
\draw[name path=p2] (1,1) circle -- (1,-1) circle;
\path [name intersections={of=p1 and p2,by=cross}]
[fill,opacity=0] (cross) circle[radius=0.5\crossing];
\path (cross) node[jump crossing,rotate=-90]{};
\end{scope}
\end{tikzpicture}
But now the circle that's supposed to clear the intersection doesn't seem to do anything:
What am I doing wrong, how do I achieve my desired result?
(1,1) -- (1,-1)
edge into two commands, which are apart from each other by the drawing of the crossing... that is going to decrease maintainability.jump crossing
, inpgfcircshapes.tex
, around line 618, you can see that the broken "node" is obtained by just drawing two segments. FWIK, there is no way to "unpath" a path once is drawn; @Qrrbrbirlbel comment is the way to. Maybe you can embed the thing in a macro.\draw (0,0) circle -- (2,0) circle;
? What are thecircle
s doing there?