另一種方法:使用正交座標

另一種方法:使用正交座標

在 tikzpicture 中,如何取得節點的單一座標?

在此輸入影像描述

這是我正在製作的電路,我需要知道節點 (opamp.out) 的 x 座標,以便我可以使 R2 與該節點垂直對齊,並將其與垂直線連接。這是我的 R2 程式碼:

\draw (opamp.-) 到 [short,*-] ++(0,1) 節點{} 到 [R,l=$R_2$] ++(2,0);

其中,我想輸入 ++(opamp.out.x-opamp.-.x,0); 而不是 ++(2,0);

答案1

另一種方法:使用正交座標

(p -| q)p指與 水平對齊和垂直對齊的點q。選擇-|的方式使得很容易記住哪個是哪個;一邊-是水平的,|一邊是垂直的。這CircuiTikz 手冊有進一步的資訊。

完整範例:

結果圖

代碼:

\documentclass[border=10pt,varwidth]{standalone}  
\usepackage{tikz}
\usepackage[american,siunitx]{circuitikz}
\usetikzlibrary{calc,positioning}
\begin{document}

An alternative solution

\begin{circuitikz}  
\draw
(0,0) node[op amp](opamp){}
(opamp.out) to[short,*-o] (2,0)node[]{} node[right]{$v_{out}$};
\draw (opamp.-) -- ++(-0.2,0) to[R,l_=$R_1$] ++ (-2,0)node[ground,rotate=-90]{};
\draw (opamp.+) to[short,-o] ++ (-0.5,0)node[left]{$V_{in}$};

\draw (opamp.-) to [short,*-] ++(0,1) node{} to [R,l=$R_2$] ([yshift=1cm]opamp.- -|opamp.out);
\end{circuitikz}

\medskip

@Astrinus' solution

\begin{circuitikz}
\draw
(0,0) node[op amp](opamp){}
(opamp.out) to[short,*-o] (2,0)node[]{} node[right]{$v_{out}$};

\draw (opamp.-) -- ++(-0.2,0) to[R,l_=$R_1$] ++ (-2,0)node[ground,rotate=-90]{};
\draw (opamp.+) to[short,-o] ++ (-0.5,0)node[left]{$V_{in}$};

\draw let \p1=(opamp.out),\p2=(opamp.-) in (opamp.-) to [short,*-] ++(0,1) 
node{} to [R,l=$R_2$] ++($(\x1,0)-(\x2,0)$);
\end{circuitikz}

\end{document}

答案2

\draw let \p1=(opamp.out),\p2=(opamp.-) in (opamp.-) to [short,*-] ++(0,1) node{} to [R,l=$R_2$] ++($(\x1,0)-(\x2,0)$);

請注意,您必須這樣做\usetikzlibrary{calc}

let語法允許您使用名稱為點別名\p1 ... \pN,其中N是點的數量。然後,在 之後in,您可以使用語法存取點的座標\x1 .. \xN並且\y1 .. \yN(我認為也可以訪問極坐標,但老實說我不記得語法:-8),匹配\p分配的順序。

該庫calc允許您使用坐標進行計算並使用語法獲取結果坐標($<calculations>$)

如果您閱讀法語,請查看pgfmanual.pdf或查看“TikZ pour l'impressive”(我根本不會說法語,但由於我的母語是新拉丁語,所以我閱讀它絕對沒有問題)。

相關內容