CircuitTikZ dividindo a entrada em duas portas

CircuitTikZ dividindo a entrada em duas portas

Eu tenho código LaTeX usando oCircuitTikZpacote para desenhar um circuito lógico simples, mas não estou convencido de que meu código seja a maneira correta de fazer o que estou tentando fazer. Essencialmente, tenho duas entradas e cada uma precisa ir para dois portões. Esta é a aparência do código:

    \begin{circuitikz} \draw
        (2,1) node[or port] (myor) {}
        (2,-1) node[nand port] (mynand) {}
        (4,0) node[and port] (myand) {}
        (myor.out) -| (myand.in 1)
        (mynand.out) -| (myand.in 2)

        (0,1) |- (myor.in 1)
        (0,1) |- (mynand.in 1)
        (-1,0) to[short, -*] (0,0)

        (0,-1) -| (myor.in 2)
        (0,-1) -| (mynand.in 2)
        (-1,-1) to[short, -*] (0.62,-1)
    ;\end{circuitikz}

Saída:

insira a descrição da imagem aqui

A saída parece correta, mas não me sinto muito bem com a última linha onde desenho (0.62,-1). Existe uma maneira mais limpa de fazer isso?

Responder1

Sim, seu circuito está OK. Outra opção para desenhar as linhas finais seria colocar coordenadas ao longo de um caminho e depois usar estas coordenadas:

\documentclass{article}
\usepackage{circuitikz}

\begin{document}

 \begin{circuitikz} \draw
        (2,1) node[or port] (myor) {}
        (2,-1) node[nand port] (mynand) {}
        (4,0) node[and port] (myand) {}
        (myor.out) -| (myand.in 1)
        (mynand.out) -| (myand.in 2)

        (myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
        (a) to[short, *-]  (-1,0|-a)

        (myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
        (b) to[short, *-] (-1,0|-b)
    ;\end{circuitikz}

\end{document}

insira a descrição da imagem aqui

Observe que, por exemplo,

  (0,1) |- (myor.in 1)
  (0,1) |- (mynand.in 1)
  (-1,0) to[short, -*] (0,0)

foi substituído por

(myor.in 1) -- ++(-0.5,0) |- (mynand.in 1) coordinate[pos=0.33] (a)
(a) to[short, *-]  (-1,0|-a)

e

(0,-1) -| (myor.in 2)
(0,-1) -| (mynand.in 2)
(-1,-1) to[short, -*] (0.62,-1)

foi substituído por

(myor.in 2) |- (mynand.in 2) coordinate[pos=0.43] (b)
(b) to[short, *-] (-1,0|-b)

e em ambos os casos usei o sistema de coordenadas perpendiculares, onde, por exemplo, (-1,0|-b)significa a coordenada x de (-1,0)e a coordenada y de (b).

informação relacionada