
Quero desenhar símbolos simples do CircuiTikZ sobre uma imagem .png. É isso que eu quero:
Isto é o que recebo atualmente:
Aqui está o meu código:
\begin{figure} [!ht]
\begin{tikzpicture}[x=1cm,y=1cm]
\node at (0,0) {\includegraphics[trim={40cm 55cm 40cm 55cm},clip,height=10cm]{images/MecanismoEscala_primer_ensayo_Variables.png}};
\node at (-3.7634,-1.5117){
\begin{circuitikz}
\draw
(0,0) --++ (-1.0778,0)
to [open,v=$v$,o-o] ++(0,0.7012)
to[short,i=$i_{a}$] ++(1.0663,0);
\end{circuitikz}
};
\end{tikzpicture}
\end{figure}\FloatBarrier
Eu também gostaria de escrever $v$
além dos terminais junto com os sinais +- (com esses dois sinais um pouco mais afastados um do outro, não gostei do resultado que obtive).
Responder1
Em primeiro lugar.Nuncaninho tikzpictures! E poste a imagem básica, que neste caso consegui inventar com o GIMP e salvei como arquivo uffa.png
.
Minha abordagem seria:
- carregue a imagem como um nó no início do
tikzpicture
, para que você possa escrever em cima dela. - Defina algum tipo de grade para ter uma referência fácil.
- Desenhe o que quiser, ajuste as coordenadas.
- Remova a grade.
Vejamos: as etapas 1 e 2 seriam mais ou menos assim:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0) {%
\includegraphics[width=10cm]{uffa.png}};
\draw[red,thin] (0,0) grid[step=1] (10,5);
\end{tikzpicture}
\end{document}
Você tem 0,0
o ponto inferior esquerdo e cada passo da grade tem 1 cm. Agora, o fundo não é branco (espero que você não imprima, caso contrário, mude), então escolhi a cor que resulta ser um azul acinzentado bem escuro com RGB em 33,40,48 (qualquer seletor de cores irá fazer).
Agora desenho o circuito, definindo o cinza-azulado como preenchimento para pólos abertos.
\documentclass[tikz]{standalone}
\usepackage[RPvoltages, american]{circuitikz}
\begin{document}
\begin{tikzpicture}[color=white]% write in white
\node[anchor=south west,inner sep=0] (image) at (0,0) {%
\includegraphics[width=10cm]{uffa.png}};
\draw[red,thin] (0,0) grid[step=1] (10,5);
\definecolor{mybg}{RGB}{33,40,48}% with a color picker
\ctikzset{open poles fill=mybg}% tell circuitikz what is background for you
\draw (4,4) coordinate(a) to[short, i=$i_a$, o-] ++(1.8,0);
\draw (a) ++(0,-1) to[short, o-] ++(1.7,0);
\draw (a) ++(-0.3,0) to[open, v=$v$] ++(0,-1);
\end{tikzpicture}
\end{document}
Tentei usar coordenadas relativas e nomeadas sempre que possível, para minimizar o número de números que você precisa ajustar para obter o resultado. Então, você remove a grade e terá: