選択してMUXの形状を変更する

選択してMUXの形状を変更する
\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}
  1. mux の入力を (IN1..IN4) ではなく 0 (IN0、IN1..IN3) から開始するにはどうすればよいですか?

  2. また、mux の上部にある選択ピンを移動します (xscale = -2 で試しましたが、目的の出力ではありません)

  3. IN1~IN4とa、bの座標を取得します。

答え1

  1. 与えられたコードは、forloop を使用して入力端子に名前を付けています。変数は\t1、2、3、4 のように変化します。これを 0、1、2、3 に変更するだけです。

  2. 選択ラインはマルチプレクサの下端((O)(A))から描画されます。これを上端((B)(C))に変更します。

  3. 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}

関連情報