\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows, chains, decorations.markings,intersections,calc}
\begin{document}
\begin{tikzpicture}
\draw[scale=0.4]
(90,3)coordinate (O)
--++(30:1)coordinate (A)
--++(90:4)coordinate (B)
--++(150:1) coordinate (C)
--cycle;
\draw ($(A)!0.5!(B)$)--++(0:1)node[right]{$F$};
\draw ($(O)!0.7!(A)$)--++(-90:1)--++(180:2)node[left]{$b$};
\draw ($(O)!0.3!(A)$)--++(-90:0.5)--++(180:1.75)node[left]{$a$};
\foreach \y/\t in {0.1/1,0.2/2,0.3/3,0.4/4} {
\draw ($(C)! \y*2 !(O)$)--++(180:1) node[left] {$IN \t$};}
\end{tikzpicture}
\end{document}
(IN1..IN4) 대신 0(IN0,IN1..IN3)에서 시작하는 mux의 입력을 어떻게 가질 수 있습니까?
Mux 상단의 선택 핀도 이동합니다. (xscale = -2로 시도했지만 원하는 출력이 아닙니다.)
IN1--IN4 및 a,b의 좌표를 가져옵니다.
답변1
주어진 코드는 forloop를 사용하여 입력 터미널의 이름을 지정합니다. 여기서 변수는
\t
1,2,3,4로 다양합니다. 이를 0,1,2,3으로 변경하기만 하면 됩니다.선택 라인은 멀티플렉서의 아래쪽 가장자리( )에서 그려집니다
(O)
. 위쪽 가장자리( ~ )(A)
로 변경합니다 .(B)
(C)
coordinate
좌표의 이름을 지정하는 데 사용할 수 있습니다 .
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw[scale=0.4]
(90,3)coordinate (O)
--++(30:1)coordinate (A) % lower edge
--++(90:4)coordinate (B) % right edge
--++(150:1) coordinate (C) % top edge
--cycle; % left edge
\draw ($(A)!0.5!(B)$)--++(0:1)node[right]{$F$};
\draw ($(B)!0.7!(C)$)|-++(-2,0.5)coordinate (b) node[left]{$b$};
\draw ($(B)!0.3!(C)$)|-($(b.east)+(0,0.5)$)coordinate (a) node[left]{$a$};
\foreach \y/\t in {0.1/0,0.2/1,0.3/2,0.4/3} {
\draw ($(C)! \y*2 !(O)$)--++(180:1) coordinate (in\t) node[left] {$IN \t$};}
\draw[red] (a) -- (b);
\draw[red] (in0) -- (in1) -- (in2) -- (in3);
\end{tikzpicture}
\end{document}