tikzpicture で、ノードの単一の座標を取得するにはどうすればよいですか?
これは私が作っている回路です。ノード (opamp.out) の x 座標を知っておく必要があります。そうすることで、R2 をそのノードと垂直に揃え、垂直線でリンクすることができます。これが R2 のコードです。
\draw (opamp.-) を [short,*-] ++(0,1) に、 node{} を [R,l=$R_2$] ++(2,0);
ここで、++(2,0)の代わりに、++(opamp.out.x-opamp.-.x,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
ポイントに名前( はポイントの数)のエイリアスを付けることができます。その後、 の後に、構文 および を使用してポイントの座標にアクセスできます(極座標にもアクセスできると思いますが、正直なところ、構文は覚えていません :-8)。割り当ての順序と一致します。\p1 ... \pN
N
in
\x1 .. \xN
\y1 .. \yN
\p
このライブラリを使用calc
すると、構文を使用して座標を計算し、結果の座標を取得できます($<calculations>$)
。
フランス語が読めるなら、「TikZ pour l'impatient」を見てくださいpgfmanual.pdf
(私はフランス語をまったく話せませんが、母国語は新ラテン語なので、読むのにまったく問題はありませんでした)。