
Haciendo algunos circuitos eléctricos en tikz por primera vez, y necesito replicar la siguiente imagen.
Un circuito no muy complicado. Ahora esto es lo que he hecho hasta ahora.
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgfpathmoveto{\pgfpoint{-0.8pt}{0pt}}
\pgfpathsine{\pgfpoint{0.4pt}{0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathsine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{0.4pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction' = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
No tengo idea de lo que he hecho hasta ahora, simplemente copié ejemplos al azar de Internet. Los nodos son un desastre, ya que seguí intentándolo hasta que todos se conectaron. ¿Qué significa ++? ¿Y alguien podría ayudarme a entender cómo arreglar mi diagrama de circuito para que se parezca a la imagen de arriba? =)
Respuesta1
Mi solución conduce a:
Código:
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformrotate{90}
\pgfpathmoveto{\pgfpoint{-0.575pt}{0pt}}
\pgfpathsine{\pgfpoint{0.3pt}{0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathsine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{0.3pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\scalebox{1.5}{
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info'={$C$}}] ++(1.5, 0)
to [resistor={info'={$R$}}] ++(2.5, 0)
to [current direction = {info' = {$I$}}]++(0,-3)
to [inductor={info'=$L$}] (0,-3)
to [ac source={info={$V$}}] (0,0);
\node[above right] at (0.75,0){$-q$};
\node[above left] at (0.75,0){$q$ \ };
\end{tikzpicture}
}
\end{document}
Desde el punto de partida (0,0)
, todos los elementos se muestran en secuencia. Por ejemplo, el condensador se coloca desde el punto inicial hasta la coordenada (1.5,0)
(ese es el significado detrás de ++). Es posible visualizar información con la tecla info
o info'
; en general, '
te permite invertir la posición de una etiqueta o la dirección de la corriente: es por eso que en mi ejemplo solía current direction
dejar que la flecha apuntara hacia abajo.
En lo que respecta a las etiquetas q
y -q
en lugar de insertarlas con la llave info
preferí utilizar nodos simples: por un lado esto permite introducir C
con info
y por otro lado permite un mejor posicionamiento de q
y -q
.
Por último, para rotar el símbolo de la fuente de voltaje simplemente lo agregué a tu código \pgftransformrotate{90}
y reduje un poco el tamaño.
Respuesta2
@ClaudioFiandrino me ganó para responder la pregunta sobre ++
:)
, pero tengo otras mejoras/comentarios que hacer. Vea el código modificado a continuación:
\documentclass[10pt,a4paper]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformresetnontranslations
\pgfpathmoveto{\pgfpoint{-0.8\tikzcircuitssizeunit}{0\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
que tiene esto como salida:
Primero, es una buena idea usarlo \tikzcircuitssizeunit
como unidad, luego la figura siempre se escala correctamente.
En segundo lugar, \pgftransformresetnontranslations
también es más general que tener una especificación explícita para una rotación de 90 grados y hace que el gráfico sea reutilizable para cualquier ángulo sin esfuerzo adicional.
Por último, sobre la fuente de CA, me gustaría señalar estopregunta(el crédito es para @Jake por su excelente respuesta) publicado por mí (el primero que publiqué aquí en TeX.SE
... ahhh - nostalgia... :)
).