Una alternativa: uso de coordenadas ortogonales.

Una alternativa: uso de coordenadas ortogonales.

En tikzpicture, ¿cómo obtengo una coordenada única de un nodo?

ingrese la descripción de la imagen aquí

Este es el circuito que estoy haciendo y necesito saber la coordenada x del nodo (opamp.out) para poder alinear R2 verticalmente con ese nodo y vincularlo con una línea vertical. Este es mi código para R2:

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

donde, en lugar de ++(2,0), me gustaría ingresar ++(opamp.out.x-opamp.-.x,0);

Respuesta1

Una alternativa: uso de coordenadas ortogonales.

(p -| q)se refiere al punto alineado horizontalmente py alineado verticalmente con q. Fue -|elegido de tal manera que sea fácil recordar cuál es cuál; el -lado es horizontal y el |lado es vertical. Elmanual de circuito tikztiene más información.

Ejemplos completos:

Diagrama resultante

Código:

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

Respuesta2

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

Tenga en cuenta que debe hacerlo \usetikzlibrary{calc}.

La letsintaxis le permite asignar alias a los puntos con nombres \p1 ... \pN, donde Nestá el número de puntos. Luego, después de in, podrías acceder a las coordenadas de los puntos con la sintaxis \x1 .. \xNy \y1 .. \yN(creo que también es posible acceder a las coordenadas polares pero, sinceramente, no recuerdo la sintaxis: -8), coincidiendo con el orden de \plas asignaciones.

La biblioteca calcte permite realizar cálculos con coordenadas y obtener las coordenadas resultantes, con la sintaxis ($<calculations>$).

Mira pgfmanual.pdfo mira "TikZ pour l'impatient" si lees francés (no puedo hablar francés en absoluto, pero como mi lengua materna es el neolatino, no tuve ningún problema para leerlo).

información relacionada