有没有办法只沿 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}