Eu tenho código LaTeX usando oCircuitTikZ
pacote 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:
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}
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)
.