仅沿 x/y 轴进行布线

仅沿 x/y 轴进行布线

在此处输入图片描述

有没有办法只沿 x 轴或 y 轴绘制线?我的意思是,当你给它固定点时,你当然可以手动完成,但是有没有办法给出两个坐标,然后 latex 将它分成两条路径。红线是我想要的路线。

当没有自动方法可以做到这一点时,我有一个解决问题的想法:我使用同样的想法,将路径分成两个单独的路径,并且我只为第一条路径提供 x 距离,为第二条路径提供 y 距离。像这样:

\draw (A) to [short] ++ ("B.x - A.x",0) to [short] ++ (0 , "B.y-A.y");

我的问题是,我无法找到一种方法来仅获取节点的 x/y 坐标。“(Ax)”只是 A 节点 x 坐标的占位符。是否有命令可以获取节点的坐标。

在这个简单的例子中,我可以回到节点的定义,只需读取坐标并手动进行布线,但当你不知道位置时,就没那么容易了。例如,当你使用 mosfet 并想要连接到 mosfet.gate 节点时。

\documentclass{report}
\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{circuitikz}[european, very thick, scale=5, transform shape]
    % Points
    \draw (0,0) node[circ](A){};
    \draw (1,-1) node[circ](B){};
    %Lables
    \draw (A) node[anchor = east] {A};
    \draw (B) node[anchor = west] {B};
    %Direct Path
    \draw (A) to [short] (B);
    %Path along axis
    \draw[red] (A) to [short] (1,0) to [short] (B);

    %Idea
    %\draw (A) to [short] ++ (B.x - A.x ,0) to [short] ++ (0 , B.y-A.y);  
\end{circuitikz}

\end{document}

感谢您的时间。

答案1

Z 对此有一个语法:to您可以使用|-或来代替使用-|。有关更多详细信息,请参阅手动的,第 156 页。

\documentclass{report}
\usepackage{tikz}
\usepackage{circuitikz}

\begin{document}

\begin{circuitikz}[european, very thick, scale=5, transform shape]
    % Points
    \draw (0,0) node[circ](A){};
    \draw (1,-1) node[circ](B){};
    %Lables
    \draw (A) node[anchor = east] {A};
    \draw (B) node[anchor = west] {B};
    %Direct Path
    \draw (A) to [short] (B);
    %Path along axis
    \draw[red] (A) -| (B);
\end{circuitikz}

\end{document}

答案2

  • circuitikz是基于的tikz,因此在通过它绘制的模式中,您可以使用tikz绘制线条的语法
  • 正如 @wincent 的回答中所述,在您tikz提供宏之后,它将绘制仅水平和垂直的直线:-|先是水平线,然后是垂直线,|-然后是垂直线,然后是水平线)
  • 绘制您想要的内容的最短方法可能是:
\documentclass[margin=3mm]{standalone}
\usepackage{circuitikz}

\begin{document}
    \begin{circuitikz}[european, very thick, scale=5, transform shape]
\draw   (0, 0) node[circ, label=west:A] {} -|
        (1,-1) node[circ, label=east:B] {};
    \end{circuitikz}
\end{document}

在此处输入图片描述

相关内容