我想将 Tikz () 的垂直绘图与操作数内部使用的|-
Circuitikz () 的导线末端形状相结合。我想做一些类似于最后一行代码的事情,其中没有任何效果。*-
to
|-
\begin{circuitikz}[x=10mm,y=10mm]
\draw (0,0) to[inline not] ++(2,0) coordinate (A) to[inline not] ++(2,0) coordinate (B) to[inline not] ++(2,0) coordinate (C) to[inline not] ++(2,0) coordinate (D);
\tikzset{mux/.style={muxdemux, muxdemux def={Lh=6, Rh=4, NL=4, NB=2, NR=1}}}
\draw (5,-4) node[mux,rotate=-90] (sel) {A};
\draw (D) |- ($(D)!0.5!(sel.lpin 1)$) -| (sel.lpin 1);
\draw (C) |- ($(C)!0.5!(sel.lpin 2)$) -| (sel.lpin 2);
\draw (B) |- ($(B)!0.5!(sel.lpin 3)$) -| (sel.lpin 3);
\draw (A) to[short,*-,|-] ($(A)!0.5!(sel.lpin 4)$) -| (sel.lpin 4);
\end{circuitikz}
谢谢
答案1
您不能将to
语法与链接在一起,|-
因为语法是(coord) to[] (coord)
绘制元素。它不起作用,因为|-
已经是一个路径元素;这就像说(coord) to[element] to[vertical and horizontal wire] (coord)
Tikz 不知道中间点一样。
这里更简单的解决方案是将其用于最后一行:
\draw (A) node[circ]{} |- ($(A)!0.5!(sel.lpin 4)$) -| (sel.lpin 4);
答案2
您还可以使用 (A |- B) 表示 A 下方或上方、B 左侧或右侧的点。
\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[x=10mm,y=10mm]
\draw (0,0) to[inline not] ++(2,0) coordinate (A) to[inline not] ++(2,0) coordinate (B) to[inline not] ++(2,0) coordinate (C) to[inline not] ++(2,0) coordinate (D);
\tikzset{mux/.style={muxdemux, muxdemux def={Lh=6, Rh=4, NL=4, NB=2, NR=1}}}
\draw (5,-4) node[mux,rotate=-90] (sel) {A};
\coordinate (E) at ($(A)!0.5!(sel.lpin 4)$);% common north/south midpoint
\draw (D) -- (D |- E) -| (sel.lpin 1);
\draw (C) -- (C |- E) -| (sel.lpin 2);
\draw (B) -- (B |- E) -| (sel.lpin 3);
\draw (A) to[short,*-] (A |- E) -| (sel.lpin 4);
\end{circuitikz}
\end{document}