电线交叉问题

电线交叉问题

我正在尝试了解 CircuiTikz 的线路交叉如何工作。我见过著名的“Kink 交叉”,但我想首先尝试使用 CircuiTikz 提供的交叉来解决这个问题。

例如:如何使用 CircuiTikz 包在该路口绘制十字路口?无需知道从 C 到 D 的转弯的坐标或相对位置。

在此处输入图片描述

这是我写的代码:

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

对我来说,重要的是不要使用手册建议的节点样式格式,因为这是针对我正在绘制的更大/更复杂的电路,并且我想绘制类似于从一个坐标到另一个坐标的路径样式的交叉,例如:

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

但显然这是行不通的。

如你所见,我使用了最新版本的 CircuiTikz,这是你可以得到它的地方

答案1

问题是,它(a) |- (b)被作为两个独立的部分处理,但to[crossing]只能处理一个。

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

演示


此版本厚颜无耻地窃取了 Fractal 的功能,但是将 替换circjump 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}

还可以使用:

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

答案2

Ascircuitikz基本上是 Ti 的 (非常好的) 扩展Z,我完全看不出有什么理由不使用标准 TiZ 语法。

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

在此处输入图片描述

相关内容