CircuitTikZ 将输入分成两个门

CircuitTikZ 将输入分成两个门

我有使用 LaTeX 代码CircuitTikZ软件包用于绘制简单的逻辑电路,但我不确定我的代码是否能正确完成我想要做的事情。本质上,我有两个输入,每个输入都需要进入两个门。代码如下所示:

    \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}

输出:

在此处输入图片描述

输出看起来正确,但我对绘制的最后一条线感觉不太好(0.62,-1)。有没有更简洁的方法来做到这一点?

答案1

是的,你的电路没问题。绘制最终线条的另一种方法是沿路径放置坐标,然后使用以下坐标:

\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}

在此处输入图片描述

例如,请注意,

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

被替换为

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

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

被替换为

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

在这两种情况下,我都使用了垂直坐标系,其中,例如(-1,0|-b)表示的 x 坐标(-1,0)和的 y 坐标(b)

相关内容